commit a0f8d8891c79b022be9bc03f5a76506f822f8530 Author: Mercurial Repos Date: Fri May 15 22:01:56 2009 +0200 Converted from CVS diff --git a/.hgignore b/.hgignore new file mode 100644 index 00000000..f8840859 --- /dev/null +++ b/.hgignore @@ -0,0 +1,11 @@ +.filelist +FILE_ID.DIZ +INSTALL +Makefile.global +autom4te.cache +config.cache +config.h +config.log +config.status +paths.h +stamp-h diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000..79f7dc03 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,60 @@ + MBSE BBS AUTHORS. + +$Id: AUTHORS,v 1.29 2007/08/22 21:14:38 mbse Exp $ + + +The following people are members of the MBSE BBS development team: + +Michiel Broek mbroek@mbse.eu 2:280/2802 +Ken Bowley kbowley@users.sourceforge.net, 1:114/485@fidonet +Redy Rodriguez redy@users.sourceforge.net 2:283/613.6 +Scott Street sstreet98@users.sourceforge.net, 1:266/420@fidonet + + +All following people have contributed to the MBSE BBS project. I'm sure that +people are missing from this list. The list is not in any special order. + +Joaquim Homrighausen joho@abs.lu +Andrew Milner andrew@fido.lu +Mats Wallin mw@fido.lu +Eugene G. Crosser crosser@average.org +Stanislav Voronyi stas@uanet.kharkov.ua +T. Tanaka +Martin Junius +Omen Technology Inc +Arjen G. Lentz +Cristof Meerwald +P. Saratxaga +Dima Maloff +Jan van de Werken +Sean Rima +Juergen Heisel +Jim Hansen +Johannes Lundberg 2:206/149@fidonet, +Vincent Danen +Francois Thunus francois@telematique.org +Johan Lindh +William McBrine +Harald Wuensch +NERvOus nervous@nervous.it +Bobby Cabral bobbyc@digitelone.com +Johannes Beekhuizen 2:280/1018@fidonet +Lukas De Groen 2:280/1027@fidonet +Vince Coen 2:257/609@fidonet +Joachim Kuwan 2:249/591@fidonet +Greek greek@voyager.nnov.ru +Sergey Nechaev 2:5015/53@fidonet +Serge Terekhov 2:5000/13@fidonet +Vadim Kurland vadim@gu.kiev.ua +Vadim Zaliva lord@crocodile.kiev.ua +Przemyslaw Kwiatkowski 2:480/127@fidonet +Phil Kimble kimerud@users.sourceforge.net 1:14/200@fidonet +David Gonzalez skynetbbs@007mundo.com 4:930/1@fidonet +Malte Tychsen 2:240/9350@fidonet +Dmitry Komissaroff rsprog@mail.ru +skyroam skyroam@users.sourceforge.net +val khokhlov 2:550/180@fidonet +Robert Wolfe 1:2613/4307@fidonet +Alan Ianson +Simon Voortman 2:280/1049.1@fidonet + diff --git a/COPYING b/COPYING new file mode 100644 index 00000000..5b6e7c66 --- /dev/null +++ b/COPYING @@ -0,0 +1,340 @@ + 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. + + GNU GENERAL PUBLIC LICENSE + 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. + + + Copyright (C) + + 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) year 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. + + , 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. diff --git a/CRON.sh b/CRON.sh new file mode 100644 index 00000000..fe693ca9 --- /dev/null +++ b/CRON.sh @@ -0,0 +1,93 @@ +#!/bin/sh +# +# $Id: CRON.sh,v 1.6 2005/08/26 10:42:43 mbse Exp $ +# +# Crontab setup script for MBSE BBS + +echo "MBSE BBS for Unix crontab setup. Checking your system..." + +# Basic checks. +if [ `whoami` != "mbse" ]; then +cat << EOF +*** Run $0 as "mbse" user only! *** + + Because the crontab for mbse must be changed, you must be mbse. + +*** SETUP aborted *** +EOF + exit 2 +fi + +if [ "$MBSE_ROOT" = "" ]; then + echo "*** The MBSE_ROOT variable doesn't exist ***" + echo "*** SETUP aborted ***" + exit 2 +fi + +if [ "`grep mbse: /etc/passwd`" = "" ]; then + echo "*** User 'mbse' does not exist on this system ***" + echo "*** SETUP aborted ***" + exit 2 +fi + +if [ "`crontab -l`" != "" ]; then + echo "*** User 'mbse' already has a crontab ***" + echo "*** SETUP aborted ***" + exit 2 +fi + +MHOME=$MBSE_ROOT + +clear +cat << EOF + Everything looks allright to install the default crontab now. + If you didn't install all bbs programs yet, you better hit + Control-C now and run this script when everything is installed. + If you insist on installing the crontab without the bbs is complete + you might get a lot of mail from cron complaining about errors. + + The default crontab will have entries for regular maintenance. + You need to add entries to start and stop polling fidonet uplinks. + There is a example at the bottom of the crontab which is commented + out of course. + + On most systems you can edit the crontab by typing "crontab -e". + +EOF + +echo -n "Hit Return to continue or Control-C to abort: " +read junk + +echo "Installing MBSE BBS crontab..." + +crontab - << EOF +#------------------------------------------------------------------------- +# +# Crontab for mbse bbs. +# +#------------------------------------------------------------------------- + +# User maintenance etc. Just do it sometime when it's quiet. +00 09 * * * $MHOME/etc/maint + +# Midnight event at 00:00. +00 00 * * * $MHOME/etc/midnight + +# Weekly event at Sunday 00:15. +15 00 * * 0 $MHOME/etc/weekly + +# Monthly event at the 1st day of the month at 01:30. +30 00 1 * * $MHOME/etc/monthly + +#----------------------------------------------------------------------------- +# +# From here you should enter your outgoing mailslots, when to send mail etc. + +# Mail slot example. +#00 02 * * * export MBSE_ROOT=$MHOME; \$MBSE_ROOT/bin/mbout poll f16.n2801.z2 -quiet +#00 03 * * * export MBSE_ROOT=$MHOME; \$MBSE_ROOT/bin/mbout stop f16.n2801.z2 -quiet + +EOF + +echo "Done." + diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 00000000..50ac1754 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,116 @@ +$Id: ChangeLog,v 1.1225 2008/12/28 12:28:25 mbse Exp $ + +v0.95.5 29-Nov-2008 + + upgrade: + Start mbsetup, enter global setup, leave and save. + + mbselib: + Newsservers can be connected with a port number from the + setup. + + mbsetup: + In screen 1.12 a nntp port number can be set. + Added a switch to force authentication on connect with nntp + servers. + + examples: + Added German menus and textfiles, written by Niels Haedecke. + + +v0.95.4 31-Aug-2008 - 29-Nov-2008 + + upgrade: + Start mbsetup, enter global menu, leave and save. + + mbnntp: + A cosmetic change to add an extra newline before the tearline. + + mbfido: + A cosmetic change to add an extra newline before the tearline. + + mbsebbs: + Fixed a buffer overflow in lastcallers display. + + mbsetup: + Increased the size of the nntp username and password fields to + 32 characters. + + script: + installinit.sh now knows about Slamd64. + SETUP.sh now knows about Slamd64. + + +v0.95.3 12-Mar-2008 - 31-Aug-2008. + + mbfido: + Fixed another buffer overflow thanks someone who is using a + tic processor that doesn't follow specs and doesn't create + proper ticfiles. + + +v0.95.2 17-Feb-2008 - 12-Mar-2008. + + mbselib.h: + Added stream scanning for F-Prot. + + mbfido: + Fixed missing SEENBY entry of our own aka if a echomail + message came from another zone. + + mbsetup: + Fixed chapter numbering in the ascii sitedoc. + + script: + Fixed hatch script to send File line. Note: you must manually + install hatch.new to hatch in the bin directory and set the + password again, this script will not automatic install. + + mbtask: + Call setprgp is not fatal if it fails. + + +v0.95.1 07-Jan-2008 - 17-Feb-2008. + + upgrade: + Start mbsetup and exit. If you have a clamd running on some + server (or bbs machine), you can switch to use stream + scanning. See the manual for details. + + mbselib.h: + Added file virscan function. + Added stream scanning for ClamAV, scanning is 10 times faster + compared to the commandline scanner. + Don't log errors if execute unzip returned error 11. + + mbtask: + Added last changes for MIB counters. + + mbfido: + Changed error message on the news gate. + Switched to virus scanner from library. + + mbfile: + Switched to virus scanner from library. + + mbsebbs: + Added MIB counters. + Switched to virus scanner from library. + + mbsetup: + Added support for TCP stream scanners. + + script: + Added support for Zenwalk. + + +v0.95.0 25-Nov-2007 - 07-Jan-2008 + + mbcico: + The maximum speed to show to the other end is now 4294976295. + + mbsetup: + Changed the maximum linespeed to display for TCP/IP sessions to + 4294976295. Numbers above 2147483647 might display on remote + systems as negative numbers. + diff --git a/ChangeLog_1998 b/ChangeLog_1998 new file mode 100644 index 00000000..b53b9eab --- /dev/null +++ b/ChangeLog_1998 @@ -0,0 +1,1393 @@ +$Id: ChangeLog_1998,v 1.1 2002/06/01 13:55:39 mbroek Exp $ + + MBSEBBS History in 1998. + + +v0.00 Started work on the Rapidbbs sources to make new structures, + headerfiles and makefiles. + The whole thing will include Fidonet echomail and tic file processing. + +v0.01 Until v0.06 lots of sourcecode fixes, bugs removed which became + visible after writing the new header and makefiles. Included common + and jamapi libraries. The jamapi is not in use yet but will be the + final message base format. + + Rewritten the mbse deamon. This deamon monitors the bbs and all the + utilities. + + Written an import util to import textfiles from the databases exported + by a little Pascal program that exports the RA databases from the DOS + bbs. + + Started writing a new setup utility. While doing this the old config + program is being stripped down. + + Renamed the filelist program to allfiles. + +v0.06 In the internal mbsed server structure added information for user + online messages. Added ADIS:2,pid,flag; set users Do Not Disturb + flag, also changed the bbs to sent that flag. + + Added Status commands to the mbsed, test for BBS open, and Zone + Mail Hour. 2 new statements in etc/mbsed.conf. The mbsebbs now + tests at startup for ZMH and BBS open. If it is closed the user is + disconnected with the reason why. + +v0.07 The new structures are ready. The bbs can run with local mail only. + + Renamed the filepack program to mbfile, it will do a lot more later. + + Removed the whoson program, the functions are in the setup program now. + + Added in the setup program the oneliner editor, protocols editor, + language setup editor, limits editor. + The oneliner editor has an import facility to import plain textfiles + to add oneliners. + + Changed structures again, lastcaller and ttyinfo. + + Removed the usered program, the users editor is in setup now. + + Fixed the download (non batching) function DownloadB, it does work + more or less. Changed the calling program from execl() to system() + to fix the stack problems. Now need testing voor carrier loss and + timeouts. + + After testing with a DOS-PC (A real fast 286 10 MHz state of the art + of the eighties, directly connected to the tty port) the Good_Bye + function needed 5 seconds extra delay to be shure all data is + send to the user. Also the parent died too fast so the mbsed server + wasn't notified when the client was logged off. + + In the bbs chat.c added unlink the /tmp/.BusyChatting file so the + chat could be more than once in a session. + + In the internal mbsed server structure added information for user + online messages. Added ADIS:2,pid,flag; set users Do Not Disturb + flag, also changed the bbs to sent that flag. + + Added Status commands to the mbsed, test for BBS open, and Zone + Mail Hour. 2 new statements in etc/mbsed.conf. The mbsebbs now + tests at startup for ZMH and BBS open. If it is closed the user is + disconnected with the reason why. + +v0.08 Added the JAM c api. This is a modified version for Linux. + + Reading JAM messages and Quickscan JAM messages implemented. Removed + support for the old message base format. The function Msg_Post() does + not work anymore, must be rewritten to support JAM. + + In the msgpack program removed all code for the old message base + format. Inluded support for client/server. + + Removed all structures of the old message base format, the only + format left is JAM. + + +v0.09 22-Mar-1998. + In Language data compiler removed output to screen for each compiled + line. When finished compiling it reports the number of language lines. + + Changed the number of lines for the line editor in Post_Msg() and + Reply_Msg() in a #define statement. In the language source it still + allways says 60 lines. + + Bugfix in mbsetup: edit message area item 7 an 8 didn't work. + + Start writing of man pages. + + Start writing mbfido, the net- echomail tosser, scanner and packer. + Succeeded tossing echomail, no dupechecking, links checking or other + checks are done. No reply linking either. + + mbsetup: Added Fidonet aka setup. + + Moved JAM I/O functions to the common directory. + + Created the mbmon program out of mbsetup. Removed those items from + mbsetup. + + Start build of the dbase library, this library will contain functions + to access the configuration datafiles for all utilities except the + mbsetup program. + +v0.10 15-Apr-1998. + Allfiles changed to make use of the common and dbase libraries. Does + logging now of activities. Removed links to src/bbs/funcs4.c + + Added fileareas and filesdatabase import to the import program. + + Corrected file area mismatches in mbsebbs and fedit. + + Mbsetup: finished global setup. Fixed pull filegroup and messagegroup. + Added edit bbs file areas. Changed format of fareas.data. + + mbfido: Added first dupechecks, only logging. Fixed errors in dbase + search routines, caused mail to be tossed in the wrong directories. + Added tossing of bad (unknown areas) and dupe mail in the bad and + dupe boards. Checks for .PKT destination implemented. Ideas for + netmail tracking written. Dupe checking seems to work, but I can't + compare it with my other tosser yet. Note after more testing: + it's better than GEcho's 1.11+ dupechecking. + + allfiles: Opens header.txt now only before processing the areas. + Added footer.txt. Both files must be in the configfiles directory, + if they are not present, nothing will be inserted. Removed all code + that constantly opened and closed the output file. Added logging for + total processing time. Added new lines to the area headers. Areas + are only written if there are downloadable files in them. Download + counter now represents bbs downloads, ftp downloads and file requests. + The last two counters are not in use yet. + +v0.11 26-Apr-1998 + mbsebbs: In the mail reader swapped From and To language fields, the + names were in the right place. Added the nodenumber after the from + name. Must be set for messagearea type (Local/Net/Echo). + + mbfido: Corrected some loglevels. + + userpack: rewritten from scratch. Deletes unix accounts as well, uses + /usr/sbin/userdel to do this, so shadow support works just fine. + This program must be run as setuid root setgid root. + + structs.h: removed flags for Unixmode and all related flags. + + mbuseradd: written. This is a setuid root setgid root version of + adduser, this program is called by newuser to create the unix account + of a bbs user. It also creates the homedirectory, the .profile file + and expires the unix account password. When a new created unix user + logs in he will be prompted for a new password. + + newuser: lots of rewriting. Added inactivity timers. Now we have + always unix accounts and fido bbs accounts. It will also die + nicely when the user did hangup on us or waited for idle timeout. + + mbsebbs: Check for unix account, if it doesn't exist the user is + forced to create a unix account. If unix login we now have a pause() + at the same place the password prompt is so the user can see the + opening screen and read it. + Removed the code that there was a parent (guarding users logon time) + and a child process (running the user). There is only one process now. + Implemented keyboard input timers. The total onlinetime must be + guarded in another way now, ie. checking must be done at prompts. + In the mean time proper idletimeout, hangup and error conditions + will log the user off in a neat way and writing into the logs about + what happened is mostly solved. + + mbsebbs and newuser: New users can only be handled by the newuser + program. Listed users only by the mbsebbs program. You need 2 accounts + without a password for this. Maybe I'll chain these 2 programs later. + + misc: compiling is a mess again, more libraries are needed, time to + close this version. + +v0.12 07-May-1998. + mbsed: Rename the logfile from "mbsed" to "mbsed.log". The mbsed + logfile is opened and closed everytime now. Logfile cleanup utils + can now safely remove the logfile, make it smaller etc. + + mbsebbs: Splitted misc.c into bye.c, pinfo.c and misc.c + + dbase library: added userrecord search. Added netmailboard search. + + mbfido: removed segmentation fault caused by a too long kludge, added + a check for the stringlength (512 bytes). Removed bugs in netmail + destination tests. Implementation of ftn netmail import into JAM area. + Only the first netmail area is used, no need for several areas now. + + mbsebbs: Added aka display when reading netmail. Changed autowrap + to line 74. + Added test for users handle when scanning new mail. + Removed test tlcap() when comparing names. The tosser should correct + the names. + Changed the MsgSelectPrompt() to default return the lastread pointer + instead of message 1. + Changed Read_a_Message() so it will return TRUE if message read was ok, + FALSE otherwise. + CheckMail() now starts searching at the users lastread pointer. It + now also keeps track of messages to the user, and gives the option + to read them. Reply is not possible yet, but posting isn't working + also. + Added a check that the receivername must exist to prevent false new + mail. + Changed UserList() to skip the empty userbase records. + Place the users timecheck functions in a separate file, made it work + again. Inserted timecheck points at several prompts. + Changed the timebank to reflect new timecheck routine's. + Moved the exitinfo functions to a separate file, several other modules + now use new functions in this file instead of internal ones. + Changed FileArea_List() to work with options (F+ and F-) for direct + area change. + Improved the fatal menu error construction. The user now sees a message + and will logoff by SIGILL. + +v0.13 24-May-1998. + mbfido: + Added a debug line to show flagfield of the original packet. + Added code to fill the message header MsgIdCRC and ReplyCRC + fields. + Added version info in the logfile. + + mbsebbs: + Corrected unixmode login problem if there where more than one + field within the gecos field of the passwd file. + Added version info in the logfile. + Changed the setting of signal handlers, removed SIGINT, added + SIGILL. + Supress display goodby screen in case of a SIGHUP. + Display ttyinfo.comment instead if ttyname in connect info. + Added create/check for subdirectories wrk and tag in the users + homedirectory, wrk is for the users homedir fileoptions, tag + is where symlinks of tagged files area placed. + Corrected message diplayed to user when logging in during zone + mail hour. + Removed menu option GlobalDownload, see new feature below. + Implemented download file tagging in menus FileList and + NewFilesScan. + Implemented download tagged files, the old download function + is gone. + Moved Change_Protocol and Set_Protocol from file.c to change.c + where they belong. Change_Protocol is now Chg_Protocol as all + other functions in change.c use the same naming convention. + Made KeywordScan and FilenameScan working without coredumps, + implemented file tagging. + Made enum vars for WhosDoingWhat. + Changed the internal filearea record number, area 1 is now 1, + not 0. This should prevent a lot of bugs. + Now setting large timeouts on the client/server guard during + filetransfers to prevent server disconnection. Changed mbsed + and common.a for that. + Added logging info when user is kicked out if the BBS is + closed. + Split file.c into file.c and filesub.c + Added menu function 111, Copy file to home directory. + Download_Home, Delete_Home, List_Home, Upload_Home now all work + with the new directory structure. Upload and Download homedir + do not count uploaded/downloaded bytes, the user gets no ratio + bonus after upload, only the up/downloads are counted. + Quota check for users home directory. The value can be set + with the mbsetup program, value is MBytes. + Removed error message if user selected a menu option where he + has no access rights for. The user now sees nothing. If you + want to give a response, use the menu system! + Reset colors to lightgray on black after logoff. + Added menu function EditTaglist. + + mbsed: + Invented two new commands, ATIM:1,n; which set a new client/ + server timeout, and ADEF:0; which resets the client/server + timeout to 600 seconds. + + common.a: + Implemented the two new client/server commands: ATIM and ADEF. + + mbsetup: + In global BBS setup, added editing Users Quota. + + import: + In FDB import, changed the filenames to lowercase. + + allfiles: + Output list now contains CR/LF at the end of each line. + + mbuseradd: + Added the line "export TERM=pcansi" to the generated .profile + in the new users home directory. This seems to work quite well + for all kinds of clients. + + + +v0.14 02-Jun-1998. + msgpack: + Renamed to mbmsg, it will do more as just packing messages. + Implemented using the msgbase.a library: Purging (Days old + and Max msgs), Packing deleted messages and Reply linking. + During pack the messages are renumbered and lastread pointers + are adjusted. + + mbsetup: + Added edit messagebase storage type. + + msgbase.a: + New library, universal message base library, must support + JAMmb, Fido *.MSG, Passthru, Usenet news and E-Mail. + This came original from LoraBBS, written by Marco Maccaferri. + I changed the sources to normal C code without objects, that + was the fastest method to mix it with the existing sources. + I dropped support for Hudson and Squish. + Only JAM is supported for a start. + The JAM module renumbers the messages while packing. + Added support for lastread pointers. + Changed all msg handling so that the messagetext must contain + all the kludges to be compatible with several message bases. + This means that the JAM module now handles the kludges in the + text, storing and retrieving it between the *.jhr files and + text. This also means that the applications don't have to + worry about kludges. + + mbsebbs: + Changed mail.c to work with the new msgbase library, dropped + the old jamapi. Scanning new messages looks slower, maybe + the speed improvement must be made in the msbase library. + Applied all changes in the messagebase library to the bbs + program. + + mbfido: + Applied all changes in the messagbase library in the tosser + module. While doing that I saw some bugs but they don't + mather anymore. + + + +v0.15 13-Jun-1998. + msgbase.a: + Implemented msgbase locking for JAM messagebase. Dropped + future support for other messagebase formats, I stick to + JAM and only JAM, it can do all we need, including mailer + netmail directory. + Implemented all possible attributes in the interface. + + dbase.a: + Removed some bugs in dbmsgs.c + Added code to update the nodes and msgs data records if they + are changed. + During msgs record loading the group record will also be + loaded if it's defined. + Added support for .tic area lookup. + + mbmsg: + Implemented msgbase locking during msgbase updates. + Added colours. + + mbfido: + Implemented msgbase locking during msgbase updates. + Implemented simple echomail forwarding in the queue. + Splitted tosspkt.c into importmsg.c echoout.c and tosspkt.c + to make the source more readable. + Started collecting SEEN-BY and ^APATH information in memory. + Started appending SEEN-BY entries during echomail forward. + Added code which should append SEEN-BY and PATH lines in + outgoing echomail. + In the startup code changed the catching/ignoring of signals. + Activated mail send and received counters in the nodes + records. + Activated echomail received counters. + Started working on .tic file processing, using my own MBFIX + code (in Turbo Pascal) as a guide. + + mbsed: + Changed the server locking in a more portable and secure way. + Added sequencer counter for generating MSGID numbers and + message packet numbers. + Removed a bug in response strings when the BBS is closed. + The signal SIGTERM is now ignored, we wait for SIGKILL only + so we keep running as long as possible. + + mbmon: + Added support for sequence numbers display. + + mbsebbs: + Removed a bug in the syntax of BBS closed messages. + Added a toggle switch to display message kludges for the sysop. + Added hilite color for quoted message lines in message read. + + mbstat: + The BBS close command doesn't need a reason anymore. + Implemented the wait function. We only wait for users online + and utilities that we want to complete their actions. Depending + on the type of init program, if it uses shutdown scripts, you + can now wait for the system to become idle before the real + system shutdown starts. + + + common.a: + Added a flag "show_log" to the Syslog function to suppress + logging to the screen. + + mbsetup: + Added support to edit .tic areas. + Started working on the creation of a site document, this is + a complete overview of the whole setup. + + +v0.16 06-Jul-1998. + + General: + This version is the first version installed on the real BBS + server, line #2. While doing this I discovered lots of errors + in the Makefiles because I installed it from scratch. I also + found out that GEcho and or RA is screwing up some JAM bases + causing this program to dump core. Did some testing, download + and mail reading is ok. + + mbsebbs: + NewfilesScan and show files listings now work with the file + upload dates instead of the real filedates. + + mbfido: + It's possible to import .tic files into the bbs. + Unknown echomail areas now log with WriteError(). + Added functions to pack mail for downlinks and put it in + the mailer outbound. + Because of small diffrences between ifcico and DOS mailers + running 2 mailers together still doesn't work for attached + files and mail. + Fixed a bug in outbound mail packets, the packed messages + didn't start with 0x0002 so downlinks didn't process the + messages. Output of echomail works now! + When processing large amounts of .tic files, the processing + stopped after about 30 files. Added 2 forgotten fclose + statements. + Added sorting functions for filenames with date/time. All + inbound processing is now sorted by date and time, oldest + files first. + + common.a: + In mbfile.c changed file_cp() to copy file attributes as well. + + userpack: + Changed commandline syntax. + + mbmsg: + Changed commandline syntax. + + mbstat: + Changed commandline syntax. + Added colors. + Does timeout after one hour waiting for the BBS to become free. + + mbsetup: + Added setup for .tic magic records. + Improved logging reason when tossing messages not for us. + + dbase.a: + Remove a bug where reading downlinks from areas base gave + nothing. (Introduced in 0.15). + + mbmon: + Corrected the screen header. + + +v0.17 30-Jul-1998 + + mbfido: + When importing files to the BBS the destination directory + is checked and created if it doesn't exist. + Improved checks when to rearchive incoming files. + Forgot to chdir back to the inbound when rearc failed. + Switching virus check off when the inbound file isn't an + compressed archive. Should check incoming *.exe (selfextracting + archives). + Keep number of files now works. + TIC forwarding to downlinks implemented. There are 2 netmails + for each forwarded file, one for the file itself and one for + the .tic file. The subjectline is to short under Unix. The + second netmail is an empty one, lets see how this works. + Added cookies. + Packing ARCmail now checks for bundles older then 5 days and + creates new bundles if found. + Added netmail pack to ARCmail. + Improved errorlogging again when tossing bad echomail. + Scan for outgoing echomail from the bbs is working. It is a + complete messagebase scan for now. + TIC forwarding again with one netmail, I faked the subject + line, all files seem to come from C:\FILES\. This seems to + give no problems with the other end of the link. + + mbmsg: + Improved debug logging. + Processing in only one area didn't work anymore. + + mbsebbs: + Made post new message work. + Now unlocking and closeing the messagebase after a crash. + Moved the lineeditor to a seperate source module. + Reply to messages is working, also from scan for new mail. + Comment to sysop now works. + Removed the Voting door. + + +v0.18 10-Aug-1998. + + general: + New record structure for fidonet networks. This makes + it possible to use the same nodelist indexes as ifmail. + Note that de define -DHAS_NDBM_H may only be set if you + have done this also in the ifmail package! This is set + in ~/src/mbfido/Makefile + + run_inout: + A shell script run from the mbse crontab (every minute) to + see if there is something to do. It scan's the protected + inbound and scan's for the ~/sema/mailout semafore. + + mbsebbs: + Creates a ~/sema/mailout semafore if mail is entered. + Added extra debug logging during newmail scan. On the live + bbs mbsebbs keeps on dumping core probably due to RA or GEcho. + Most amusing is that after crashing mbsebbs, RA will see new + netmail again, as if only mbsebbs knows how to handle the + users lastread pointers and fixes them for RA; sigh. + + mbfido: + Start working on the netmail tracker/router. It works without + an external routing file, although hosts will need one. + It works on checking known nodes, then nodelists, and then + known nodes again. This is very experimental. + + mbsetup: + Changed to the new fidonet structures. + + import: + Changed to the new fidonet structures. + + general: + Installed at 13-Aug-1998 at the BBS for testing. + + +v0.19 14-Aug-1998 + + general: + Wrote some documentation about how to setup the ftp server + so that it works together with MBSE BBS. + + mbsebbs: + After download the message "updating download counters" now + will first send a to overwrite the zmodem init string + on the users screen. + Added structures for bluewave. + Now scans for new files at logon. + Removed global variable sUserName, gave some strange results. + Added logging which msg area was active when a segmentation + fault occurs. + + script: + A new subdirectory for /bin/sh scripts. Look out with this + one, if you modify the scripts in ~/etc or ~/bin directly + they will be overwritten with each new install. + + mbuseradd: + Add each new user to /etc/ftpusers to prevent them to login + under their own name in the ftp server. + + fbgen: + Setting umask to 002. + + fileedit: + Removed, was obsolete. + + import: + Setting umask to 007. + + common.a: + mkdirs now creates directories with permission 0775. + Added dos<->unix filenames translation. + Rewrote tu() and tl() functions. + + mbfile: + Setting umask to 002. + Now checks for files on disk, but missing in the fdb. Deletes + them when found (exept some). + Now when packing the fdb records marked for deletion, also + if the file is on disk, it is deleted. + Added some commands to the todo list. + With the check command it now reports the area number to the + mbsed server, so mbmon will display how far it is. This will + also avoid timeouts on large areas. + Now handles multiple commands in one run. Pack will run + automatic if there are files deleted. + + mbfido: + Set a semafore "msglink" when the message base is modified. + Added more debug logging for files descriptions. + Implemented dos<->unix filename translation for tic file + forward. + File attaches in .flo files now are DOS filenames and .flo + files are now DOS-compatible. + If there are no more then 2 Long Description lines we asume + that there is a better single (old style) Description line. + There are uplinks that make a mess of these lines. + Netmail forwarding should work now as long as the nodes via + we must route are in our setup. + + mbsed: + Added in wait for free the mbindex and mbuser programs. + + mbindex: + Written. Heavlily based on Eugene Crosser's ifindex. + + mbsetup: + Written the menu editor and removed the old mbconfig program. + Added some editor commands to the user editor. + + mbuser: + Now leaves the records alone with the NeverDelete flag set. + + mbmsg: + Added logging when a segmentation fault occurs which was the + last message area. + + +v0.20 24-Aug-1998 + + common.a: + Moved from mbfido the modules ftn, falists, nlindex and + nodelist to this library. More programs will need it. + + mbindex: + Changed some loglevels. Removed the -force switch, compile + is always forced now. + Removed a bug to the path of the index files. + + import: + Now using dos2unix pathname translation for fileareas and + mailareas import. + + mbfido: + Changed some logging. Removed ftn, falists, nlindex and + nodelist modules, they are now in the common library. + + +v0.21 25-Aug-1998 + + mbindex: + Trashed the index files when a new nodelist in the setup + was added. (ifindex did this also). Now it will allways + force to recreate the index files. + Now sends username who started mbindex to mbsed. + + mbfido: + Imported files into bbs areas now get filemode 0644 instead + of 0660 so the ftp/www clients will really see them. + Corrected the experimental replace test, could never work. + If after trigger the compile nodelist flag there came in + another file, the flag was reset. + Now sends username who started mbfido to mbsed. + + mbsebbs: + Created a language crossreference listing. Corrected some + language numbers. + After changing the language, it is now confirmed in the + new selected language. + When the language file is missing, the error message no longer + comes from the missing language file, now it is hardcoded. + Minimum location length is now adjustable with mbsetup, + changed language prompt 74. + Replaced hardcoded messages in chat with language prompts + 59 and 60. + Changed error logging in exitinfo.c + When reading messages the more prompt is now language prompt + 61 instead of hardcoded. + Posting messages is now blocked for Noreply boards. Language + prompt 438. + In message readpanel now language prompts 211 and 212 for + Next reply: and Reply to: threads. + In message area select now using prompt 207. + In newmailscan, added prompt 218 and the Quit option. + In message status, added prompt 226. + Readpanel, added prompt 227. + Delete specific message subfunction does work now. + In display file with more, changed prompt 72. + Changed prompts in file.c and filesub.c. + The info screen is 1 character smaller, 79 characters, some + terminal programs did extra line wrapping. + Added new language file format, the datafile now includes + the keys users can press. + Moved the loading of user's preffered language more to the + begin of the login procedure. + When the user is unknown (ordinary BBS account), the newuser + programm is started. If that runs successfull (depends on the + user on-line), mbsebbs will be run again. It's probably wise + to merge these 2 programs. + + mbsetup: + Minimum location length installed in menu 1.5 + + allfiles: + Now sends username who started allfiles to mbsed. + + mbfile: + Now sends username who started mbfile to mbsed. + + mbmsg: + Now sends username who started mbmsg to mbsed. + + mbstat: + Now sends username who started mbstat to mbsed. + + mbuser: + Now sends username who started mbuser to mbsed. + Did leave the users.data file owned by root. It is now + set to the owner and group of the "mbse" account. + Added screen output for non-quiet mode. + + lang: + Changed to compile new language datafile format, including + the keys a user can press. + + newuser: + Added new language file format, the datafile now includes + the keys users can press. + Now always asks Date of Birth, this is necessary for later + checks. + At the end now engages mbsebbs. + + mbuseradd: + Now uses the created gid and uid voor changing ownership + of files and directories. + + +v0.22 06-Sep-1998 + + mbsetup: + Changed logfile to one master logfile. + Added menus for offline reader. + + allfiles: + Changed logfile to one master logfile. + + mbsebbs: + Changed logfile to one master logfile. + Started offline reader. + + mbfile: + Changed logfile to one master logfile. + Corrected creating full path/filename in pack files. + Added creating and removing symlinks for file requests. + Now deletes files during "kill" instead of only marking. + Simplified log messages. + Added commandline switch "req", this will only check the + file request symlinks. + + mbmsg: + Changed logfile to one master logfile. + + fbgen: + Changed logfile to one master logfile. + + newuser: + Changed logfile to one master logfile. + + mbuser: + Changed logfile to one master logfile. + + mbstat: + Changed logfile to one master logfile. + + mbindex: + Changed logfile to one master logfile. + + mbfido: + Changed logfile to one master logfile. + Added creating and deleting of symlinks for file requests. + Files removed from the filedatabase when running "keep files" + are now also removed from disk. + Removed some debug logging for netmail forwarding. It seems + to work. + Replace files now works more or less. Moved the fdb packer. + + mbindex: + Only logs crash cause if errorlevel > 0. + Removed some invisible screen output in quiet mode. Cron did + notice this. + + lang: + Renamed to mblang, also the source directory is now mblang. + The directory lang will now be used for language sources. + + +v0.23 20-Sep-1998. + + global: + Added #pragma pack(1) to ~/src/include/libs.h so that all + datafiles are now compatible over several hard and software + platforms. I needed this to implement the BlueWave Offline + Reader into the bbs. Increased the QWK tagname field to 20 + characters. + + mbsebbs: + Made menu execution logging more readable. + If a user has no archiver set, set default to ZIP at logon. + Changed logging in the Download Direct command. + Implemented first raw version of BlueWave Offline Reader. + Needs some security improvements, file requesting, filters + but it works for now. + Checking for a Unix account was done before the password was + checked, so if the password was wrong the user was asked for + a new Unix account again. + + mbfido: + For netmail import now searches the netmail area on zone:net + match. + + import: + Removed bugs when converting DOS to Unix paths which resulted + in corrupted pathnames. + + mbsetup: + Corrected linefeed problem in language doc printing. + Horizontal line drawing now with low-ASCII instead of Alternate + Character Set. + + mbmon: + Horizontal line drawing now with low-ASCII instead of Alternate + Character Set. + Corrected a color problem in View BBS Information, and added + display BBS startdate. + + +v0.24 30-Sep-1998. + + structs.h: + New fields in config.data: OLR_MaxMsgs, OLR_NewFileLimit, + OLR_MaxFreq. + New fields in mareas.data: OLR_Default, OLR_Forced. + New fields in ttys.data: honor_zmh. + Added Areafilename field to group records. + + mbsebbs: + Combined some functions from offline.c and mail.c into + msgutil.c + Messages posted with a OLR are now counted in the users record. + Closeing the bbs during Zone Mail Hour can now be set for each + individual line. + Now counting and marking the date/time when posting messages + in mareas.data. + + mbsetup: + Corrected some sitedoc problems in global setup. + Added sitedoc printing for mail setup. + Added file and mailgroups setup to the nodes setup. + Added newfiles reports setup. + Added filefind areas setup. + + mbfile: + Corrected spelling error. + + mbaff: + New program. Announce new files and FileFind (Allfix). + + mbfido: + In .tic file processing if we were a pointaddress, the path + checking always gave an error. The check of our boss is + skipped now. + The correct .tic area and filedate is now set in the toberep + database. + + mbmsg: + Improved initialisation. + + +v0.25/a 12-Oct-1998. + + general: + From now on version numbering will get /a (Alpha), /b (Beta) + and /g (Gamma) release extensions. This is necessary for + live testing at my bbs. + + mbfido: + The Cost field in the toberep.data file was not set. + + msgbase.a: + Added extra screen output in certain error conditions. + Added a trick to generate a FromAddress from the Msgid + in case there is no FromAddress. This was left blank by + GEcho 1.11+ (DOS). + + mbaff: + Added some IsDoing information for the monitor. + Setting ReplyCRC to -1 instead of 0 if it's an original + message. + Minimum searchstring length is now 3 characters (hardcoded). + Added a check to see if there is a FromAddress and a Subject + before a message is added to the scanlist. + + mbsebbs: + Corrected spelling error in OLR download logging. + + mbsetup: + Changed some page layouts in the sitedocs, added some + forgotten formfeeds. + + +v0.25/b 14-Oct-1998. + + mbfido: + If the tic queue directory didn't exist, it is now created. + Netmail messages now have zone:net aka matching on the + destination and from addresses. + Started with the AreaMgr and FileMgr functions. It can respond + to %help. + Added the notify function. + + mbsetup: + When picking a mailgroup in messages setup or a filegroup + in ticsetup, the ftn aka is copied from the group setup as + a default aka for that area. + When setting the area tag and if the OLR tagname is empty, the + area tag is copied there as a default. + + +v0.26/a 17-Oct-1998. + + general: + In some databases in the header there is now a time_t field + added. This is to mark the last statistics counters rollover. + Programs that count statistics must perform an rollover when + it's run on a new day, week or month. + + warning: + To upgrade the databases, enter the setup for message areas, + tic areas, nodes, file groups and message groups and save + the databases. + + mbfido: + Implemented new statistic counters. + Implemented rollover of the statistic counters every week and + new month. + Changed program locking, now it locks the whole program in + stead of short moments. + + mbsebbs: + Implemented new statistic counters. + + mbaff: + It now counts the posted messages in the message area. + Corrected the announce message text. + + +v0.26/b 20-Oct-1998 + + mbsetup: + Wrote the hatch manager. All basic functions are present now. + All databases that can be packed after deleting records can + do this now. During update those databases area sorted. This + is not for the message areas, files areas and the userbase. + These files may not be packed. + + + +v0.27/a 29-Oct-1998 + + general: + Changed the database format for the files. Added support for + long filenames. The .tic file area is also stored in the + records to make the rescan function work later. + The files database must be rebuild for this release!!! + The BBS and the rest of the programs now use different + loglevels. + Changed the sourcefile distribution name to mbseN_NN.tgz. + + upgrade: + Delete all file databases! + mbsetup 1-5-20: set utils loglevel. + run mbfile check -debug to fix the files references. + + dbase.a: + Functions added to connect and disconnect nodes from echimail + and file areas. + Now marking the nodes record invalid after update. This should + prevent corrupting the nodes.data file from now on. + + common.a: + Added a function to convert ifcico addresses to internal fido + addresses. + Removed a pointer bug in the aka2str function. + + mbfido: + Added most AreaMgr and FileMgr functions. Needs a lot of + code cleanup but most things work for now. + Now imports the TIC area name in the filedatabase. This can + later be used for %resend requests. + The long filename field is filled with the dos filename for the + time being. + + +v0.27/b 04-Nov-1998 + + general: + Changed the top Makefile, it "forgot" the script directory. + This release adds nodelist diff processing and hatching of + new files, for example the nodelist you just created. + Switched to compiling with ndbm.h, this is now default + because the nodelist can now be opened by several programs + at the same time (for reading). Support for dbm.h will be + dropped, it gives trouble and cannot be used on a multiline + system. + Created the semafore.doc document for semafore handling. + + common.a: + Added the semafore functions. + + import: + Implemented long filenames on files database import. + + + mbfido: + Changed the way of counting FILE_ID.DIZ lines in archives. + Made macro's in tic processing case insensitive. + Implemeted automatic hatching of files. + Creates the "mbindex" semafore when new nodelists have been + put in place. + + mbuseradd: + Changed the contents of users .profile to: + . $MBSE_ROOT/etc/profile + The file $MBSE_ROOT/etc/profile contains the global startup + commands for normal bbs users. + + + mbsebbs: + Changed debug logging of DisplayFile function. + Logs the tty line comment after the username at login. + Linked with the new common/semafore functions. + + mbdiff: + New program. Nodelist diff processor. Creates the "mailin" + semafore when it created a zipped nodelist. + + mbsetup: + Added tic echo group pick in hatch and magic setup. + Removed setup of semafore path's, they are now hardcoded. + + mbcico: + A quick hack of Eugene G. Crosser's ifcico. At this time + only the logging functions using mbsed are implemented. + It needs ~/etc/mbcico.conf for configuration together with + the standard database configuration. In time, the mbcico.conf + file will not be needed anymore. For testing in this release + it does the job. + + mbaff: + Linked with the new common/semafore functions. + Creates also the msglink semafore when mail is written. + + mbindex: + Removes the "mbindex" semafore when the nodelists are + successfull compiled. During compiling it places the + "compiling" semafore. + + mbmsg: + Removes the "msglink" semafore when the messagebases are + linked. + + mbstat: + Now maintains the semafore's "bbsopen", "bbsclosed", "zmh" and + "scanout" according to semafore.doc. You must schedule + "mbstat check" in the crontan at the start op ZMH and end of + ZMH both on summer and wintertime. If you did configure the + ZMH right in UTC in $MBSE_ROOT/etc/mbsed.conf this will work + if you did setup your timezone correctly. + + + +v0.28/a 18-Nov-1998. + + general: + Modified the structs files to add a database for modems, + changed the tty database to link it with the modems, added + fields in the nodes database for the mailer, added fields + in the global config file to add setup for the mailer. + Dropped nodelist V21 flag, added V32T and VFC flags. The + U flags for modem capabilities must be implemented somehow. + + upgrade: + To upgrade, enter the global setup and leave it, say yes to + save changes. Enter the nodes setup, enter one of the nodes + record, exit and save changes. Setup the modems database. + Enter the tty ports setup, link the modems to the POTS and + ISDN lines and save it. + + common.a: + In crc added crc16ccitt functions. + In clcomm the function IsDoing(char *) now accepts formatted + parameters. + Added function SetTTY(char *). + Added debug logging of nodelist flags. + Changed the way the nodelist flags are parsed, sometimes + U flags became standard flags, and standard flags became U + flags. 'U' became a flag also. + Moved some common files from mbcico and mbfido into the + library. + + mbsetup: + Changed the lineeditor to accept the comma character. + Added modem setup, changed tty lines setup to pick a modem. + Changed nodes setup, finally added the statistics screen. + Changed fidonet setup, first zone is now called "primary zone" + + mbfido: + Added IsDoing info during date rollover. + Removed a bug causing a segmentation fault when a mail packet + had an error. + Removed check that incoming packets must come from a node in + our setup. All received mail packets are now processed. + Echomail must still come from nodes in our setup, the rest goes + to /dev/null + Moved some sources to the common library. + In forward() changed the uppercase functions for the subject + line. The original filename became uppercase also. + Corrected debug logging for packet date, the month was 0-11 in + stead of 1-12. + Added logging for ftsc product name and version. + + mbcico: + Added some EMSI extra logging. + Added more IsDoing info for mbmon. + Corrected the Makefile after testinstall on the live bbs. + Changed the order of the EMSI data to send to the remote + party to be more standard. McMail (maybe others too) didn't + recognize all options send too early. + Added EMSI logging for 'link', 'comp' and 'tranx'. + Moved some sources to the common library. + Completely rewritten the chat module. Everything received + from the modem is now logged. Because all modem responses + including echo from commands, are now logged, the aftercall + function (get modem aftercall or caller id), will go to the + logfile as well. (not tested, I have no CLIP capable modem). + Added patches from ifcico-3.0.cm.alpha-4.0 to filelist.c, + this should better handle files sent/notsent in failed + sessions. + Added counters for sent and received bytes. + Completely rewritten the scanout function. It now searches + only in the outbound directories defined in the setup. + In the fidonet networks of the setup the first defined zone + is the default zone for that domain. Other zones get a hex + extensions with zone number. + Scanning mail for the CallAll option now selects outside ZMH + only crash mail, during ZMH crash and normal mail. Logging + of selecting mail is improved. + When calling a node is failed for 30 attempts, the node will + not be called anymore. If the problem if corrected you now + must manually edit the .sts file or delete it to call that + node again. (Option for the future outbound manager). I think + that sessions errors do this after 3 attempts. + When calling a node, mbcico more ore less automatic selects + a tty with modem that matches the nodelist entries of the + node to call. ISDN is not yet supported. Also a best speed + test must set priority of ports to use. + + mbmsg: + Supressed error message if there was no semafore "msglink" + to remove. + + mbsed: + Added command SZMH, requesting Zone Mail Hour status. + Added command ATTY, setting a new tty port. + + mbdiff: + Removed some unnecessary debug log information. This program + seems to work fine now. (Wow, only needed 2 releases for + this one). + + +v0.28/b 09-Dec-1998 + + general: + Added structure for the mailer history file. + + mbaff: + Removed some debugging logmessages. + + mbsebbs: + Removed some debugging logmessages for newmail scan. + Removed some debugging logmessages from timer functions. + + mbmsg: + Added program info logline. + + mbcico: + Added monitor info during FTS-0001 sessions. + + mbout: + New program, the Outbound Manager, many ideas stolen from other + programs of the ifmail package. + + + +v0.29/a 11-Dec-1998 + + common.a: + Opening of nodelists is now logged at debug level. + Added .pol files to pktname.c + Moved attach.c from mbfido to common library. + Nodelock now tests for own locks, if so, no error is given. + + mbfido: + Worked on the uppercase bug again. It will only happen when + we must forward a file. + Moved attach.c to the common library. + + mbout: + Implemented file requests. + Implemented creating and removing of .pol files to make and + remove polls. + + mbcico: + Calls nodes when .pol file is present. + Made file requests working again, the .req files where not + added to the filelist to send. + When reading node options the NoEMSI and NoWazoo flags weren't + copied to the options. + Corrected a bug in yoohoo.c where it didn't initialize + remote->addr->name to NULL in checkhello(), this caused + a segmentation error and failing Yoohoo/2U2 sessions. Note + that this error is in ifcico as well. + Over TCP/IP with ifcico as other mailer EMSI, Yoohoo/2U2 and + FTS-0001 in- and outbound sessions are working. For other + mailers we will see if it will work in real live. + + +v0.29/b 17-Dec-1998. + + general: + Installed 0.29/alpha on the bbs. + Installed usleep() code in some utils. See usleep.doc for + details. + Changed the nodelist flag definitions to prevent conflicts + with system macro's. + + common.a: + Locking and unlocking nodes gives better error logging. It + now also checks our own pid if the lock was already made + instead of complaining. + + mbfido: + Removed some bugs in logging in magic.c + Changed FILE_ID.DIZ file checking for empty lines. + Now always marks a file announced when importing into the bbs. + Added code to prevent terminal output in quiet mode. + Added usleep() code in statistics rollover. + Added usleep() code in importmsg. (sleep each message). + Added usleep() code in LoadTic. (sleep each .tic file). + Added usleep() code in scan for mail. + Removed error message when "mailout" semafore didn't exist + in scan for mail. + + mbcico: + During outbound EMSI session we send the NRQ option flag, + requests on hold for us are not allowed when we callout. + When calling a node the first thing now is lock the node + to prevent further checking if the node is already locked. + Putstatus is logged for studying status updates. + Experimental status resetting of all nodes after successfull + session. + + mball: + Renamed from allfiles. + Now creates allfiles and newfiles reports. Honors maximum + security level to include in the lists (no flags yet). + Optional parameter -zip will create allfiles.zip and + newfiles.zip. + Installed usleep() code. + It is finished. + + mbout: + No more error message when a file attach in a .flo file is + nolonger on disk. This can happen if nodes don't poll often + enough. + + mbmsg: + Installed usleep() code. + Removed color code output when in quiet mode. + + mbaff: + Installed usleep() code. + Now marks the file announced after scanning the bbs for + uploads. + + mbfile: + Added the usleep() code. + Added some code to lower the disk i/o. + + mbstat: + Now logs status of ZMH with the "check" command. + + mbuseradd: + Added a check to see if the "shadow password suite" is + installed. It is absolutely necessary to have this. + If /etc/login.defs is present, the useradd program gets an + extra parameter "-M", to override the creating of the users + home directory. (Found on Redhat 5.1). + Added an extra check if reading the /etc/passwd file failed. + Added newline characters after some error messages. + + +v0.29/b2 24-Dec-1998 + + general: + Added modem.stripdash and ttyinfo.portspeed in structs.h + + common.a: + Changed logging functions in clcomm.c, repeated messages are + now counted and reported how many there were. A full filesystem + will hopefully not happen anymore. + Added the Nopper function, this one can be called often but + only once a minute a NOP is send to the server to prevent a + timeout disconnect. + + mbcico: + Removed some debugging logs. Added some return codes from the + tty drivers in zmodem send and receive. (removed later, it + didn't work). + Added Nopper code in file transfer protocols. + + mbout: + When creating a poll the node's status record is reset, so if + the node was undiable, it will start polling again. This will + not happen for sessions handshake errors and port errors. + + mbsetup: + In edit tty added edit portspeed. + In edit modem added edit stripdash. + + mbsed: + Corrected ZMH status response. + + mbstat: + Corrected ZMH status check. + + +v0.29/b3 28-Dec-1998. + + mbcico: + Inserted new ttyio code from the German version made by + P. Saratxaga and T. Tanaka. I hope the Zmodem problems will + now be solved. + Added Hydra filetransfer protocol. + Removed Janus, it wasn't implemented anyway. + Corrected modem init routine. + Implemented aftercall function. + + mbsetup: + Removed setup to disable Janus protocol. + + +v0.29/b4 29-Dec-1998. + + general: + Changed the Makefiles. Now only in ~/src/CONFIG you can place + extra defines. + Added compile switches -Wshadow -Wwrite-strings + -Wstrict-prototypes. This gave a lot of code cleanup, maybe some + strange errors are gone. + + common.a: + Corrected the repeative log counter. + Included in nlindex.c HAS_BSD_DB + + mbcico: + Improved ttyio logging, maybe we can better see what is going + wrong when transfering files. + EMSI compatibility protocol now gives Hydra first, then Direct + Zap. + Added file transfer counters to Hydra. Changed Hydra logging + a bit. + + mbindex: + Changed nodebld.c to inlcude HAS_BSD_DB + + mbuser: + Did some screen output when it was in quiet moded. + + diff --git a/ChangeLog_1999 b/ChangeLog_1999 new file mode 100644 index 00000000..c1f89f84 --- /dev/null +++ b/ChangeLog_1999 @@ -0,0 +1,1602 @@ +$Id: ChangeLog_1999,v 1.1 2002/06/01 13:55:40 mbroek Exp $ + + MBSEBBS History in 1999. + + +v0.30/a 01-Jan-1999. + + mbfido: + Removed a bug in the program lock that could cause a segfault. + In delete viruswork made rm now work in forced mode. + Hatch files now logs only hatched files. Added the + statistics update. + Changed completly the call module. There were some locking + problems and modem access attempts when the port was closed. + In Hydra the transfercounters are now updated after each + succesfull block. + Added more debugging log to the ttyio driver. + In answer mode we grep the environment variables CONNECT + and CALLER_ID created by mgetty and make log entries. + Swapped timer numbers in Hydra, in tty_write we now don't + test the read timer anymore, this gave unexpected timeouts + and is not according the Hydra specs. + Changed more debugging in ttyio, zmodem and zedzap are still + not working well. + Undiable nodes will not be added to the callist anymore. + + mbsed: + Added some logging in the ZMH status check to see what goes + wrong with asking ZMH status. + Changed the statusfile locking, now the lock tests are done + at 100 mSec intervals instead of 1 Second. + + mbsebbs: + Added CONNECT and CALLER_ID environment variables logging. + + newuser: + Added CONNECT and CALLER_ID environment variables logging. + + +v0.30/b1 10-Jan-1999. + + common.a: + Removed a bug in client.c that caused a segmentation fault + when the connected tty was /dev/console. It is now possible + to run clients from sysv init during system boot. + + mbsed: + Removed a bug in the ZMH status function. + Changed statusfile lock form 15 x 100 mSec to 10 x 250 mSec. + + +v0.30/b2 16-Jan-1999. + + general: + Defined bitmasks for logging. There are now maximum 26 debug + logflags. The logflags are changed from int to long. + All programs have been changed to use these flags now. + + upgrade: + In mbsetup set the new flags in menu 1.5.19 1.5.20 and 1.18.1 + + note: + This version still only compiles on Slackware 3.2 maybe + others, but not on RedHat 5.1 5.2 and RedHat 5.2 Sparc. + + +v0.31/a 23-Jan-1999. + + update: + Recompile the nodelists. Remove old index.dir and index.pag + files from the nodelist directory. + Set new value for dialdelay. + + general: + Removed mbsed from this source tree. From now on this will + be distributed as a seperate archive. + Finally found out why this package wouldn't work with glibc. + Complete rewrite of the nodelist indexes. I don't use any + dbm, ndbm anymore. I wanted username lookup included and + full support for ISDN and TCP/IP only nodes. + It now compiles on RedHat 5.2 Sparc and Intel. + + common.a: + Removed a serious memory leak causing the system to exhaust + all available memory during long filetransfer sessions. + Rewrote the nodelist lookup functions. Search is very fast + because the index file is sorted on nodenumber. + The nodelists will be closed after each lookup so that mbindex + may always compile new indexes. + + mbcico: + In call.c changed the port closing, it will now also close the + port after an unsuccessfull call so multiple calls in one + run will now hopefully work. + Removed a bug when calling a TCP/IP node it was trying to + dial with a modem. + Added random number generator to set the dialdelay before a + call is made. + + mbindex: + Total rewrite for the new nodelist indexes. In -quiet mode + it does the usleep(1) call every 80 lines (if set). Note + that in quiet mode it still runs faster then with screen + output. + The index file is sorted before it is written to disk. This + makes node lookup very fast (faster then with ndbm). + The old files stay on disk in case they are open, which can + only be for less then a second. + The semafore compile is not created anymore, instead the + mbindex program creates a lockfile to prevent that another + mbindex can run. Compiling the nodelists can now be done at + any moment. + Username indexes are not supported at this moment. + + mbstat: + Now only changes ZMH status if the status is really changed. + Will create the "scanout" semafore if ZMH status changes (I + did document it). + + mbmsg: + Changed the logging, killing messages now logs in columns, so + you can easy see how the mailflow and killing develops. + Removed some debug logging (finally). + When screen output is on, the last line is now erased after + processing. + + mbsetup: + Changed helptekst for mailer->dialdelay. + + mball: + Now creates semafore "mailin" when ready so the produced + allfiles and newfiles listings will be imported by mbfido tic. + + mbsed: + Changed the $MBSE_ROOT/sta directory to $MBSE_ROOT/var and + changed the names of the status and reginfo files. + +v0.31/b 06-Feb-1999 + + common.a: + Changed raw keyboard read to get cursor movement keys and other + gray keyboard keys. Only cursor movements is guaranteed to work + This is a limitation of PC-ANSI clients. + This change is needed to write the fullscreen editor. + Removed memory leaks from getheader.c and mbfile.c + Switched to one single .h file. + If loggin "message repeated n times" the first character is now + uppercase as in normal logmessages. + + mbsebbs: + Implemented raw keyboard read changes. + All actions in change.c are now logged. + Made change voice and data phone work. + Removed the (dangerous) gets function from funcs.c + + mbsetup: + Removed ncurses code. + In line editor the delete and insert key is finally working. + Modified help tekst for modem hangup string. + + mbmon: + Removed ncurses code. + In line editor the delete and insert key is finally working. + + mbcico: + If modem hangup string is empty only DTR-drop will be used + to hangup the modem line. + During ZMH mbcico will now only call nodes for which it has + non archived mail (netmail). + Changed ttyio debug logs, could block the session. + For magic file and execute requests now looks for both upper- + and lowercase matches. + Filerequests are searched in the internal database on both + long and short filenames, password protection is supported, + and the request counter in the FDB is updated. + + mbindex: + Doesn't complain anymore when the semafore "mbindex" didn't + exist when it tried to remove it. + Now tests for latest nodelist by filedate instead of file + extension number. + + mbfido: + Creates magic file names for magic filerequests. + + + +v0.32/a 16-Feb-1999 + + update: + Remove symlink directories. + + general: + Changed elapsed time logging, now ranges from seconds to + days with the same stringlength. + Moved signal names to common.a, also included the names + for i386 and Sparc systems. + Added PackNetmail flag to nodes record. + + msgbase.a: + Removed automatic adding of FMPT and TOPT kludges in netmail. + Applications are responsible for adding kludges. + + mbfile: + Removed code to work on symlinks for ifcico file requests. + + mbfido: + Added some code to prevent memory leaks. + The .pkt password check now always logs bad passwords, only + when mail password check is set, bad passwords are fatal. + Added code to keep dupe databases in maximum limits. + Now forcing chdir to inbound before processing each .tic file. + It will now export netmail from the message base. It also + supports packed und unpacked netmail. + Added TZUTC kludge (FSP-1001). + + mbcico: + Changed zmrecv debug logging for hanging session with one + of my links using InterMail 2.50 ML, rev B020. + If polling all lines of a multiline node and the first line + was successfull, mbcico would still poll the other lines. + The random dialdelay is now always 10 seconds or more to give + mgetty the chance to reset the modem and takeover the line + between multiple calls. + During dialdelay the IsDoing status is now sent every second + to the mbsed so you can watch it with mbmon. + + mbsetup: + Changed nodes setup so that password may be upper or lowercase + for remotes that are case sensitive (was always uppercase). + Added support for PackNetmail flags in nodes editor. + + scripts: + In run_inout added the news gateway (echomail => news). + + mbindex: + Now only tries to compile files with a numeric extension, + 2 or 3 digits length. + + mbsebbs: + Wrote a simple fullscreen message editor, more or less + Wordstar compatible. + Fixed a small problem in the line editor. + The maximum size of a message is now 500 lines. + When replying to a message, the original message is quoted + into the textbuffer including an introduction line. + When replying to a message, "Re: " is inserted in the + subject if there was none. + It is now possible to send and reply netmails. + Added TZUTC kludge (FSP-1001). + + mbout: + With poll and stop command you can enter multiple nodes. + With the request command you can enter multiple files. + The request command doesn't create a .flo file anymore, the + actual calling of the node must be done with the poll + command. + + mbaff: + Added TZUTC kludge (FSP-1001). + + mbsed: + Implemented CIPM and CSPM commands (online messages between + users). Updated the programnames list for check if the bbs + is idle. Changed the reginfo file lock to 30 x 150 mSec. + Fixed the Linux Sparc version. + + +v0.32/b 15-Mar-1999 + + upgrade: + Delete the newuser program and any accounts using it. + Move compiled language datafiles to ~/etc. + Move config.data from ~ to ~/etc. + Remove ~/lang directory + chown -R mbse.bbs ~/home/* + Upgrade mbsed to at least v0.32 Alpha. + + general: + The mbsebbs program now runs setuid "mbse" setgid "bbs". + All files are now owned by mbse.bbs, even the bbs users + private files. + All references to directories for the configuration are now + hardcoded to ~/etc, ~/fdb, ~/log, ~/tmp and ~/var. + The directory ~/lang is no longer needed. + The directory /tmp is no longer used, using ~/tmp instead. + Moved the language sources and installation into this source + tree. + + mbfido: + Forgot to append after the TZUTC kludge. + If we were a point, a route to our boss was not found. + Updated for hardcoded paths. + + mbsebbs: + Now runs setuid "mbse" and setgid "bbs". Changed the parameters + to the mbuseradd program. The newuser program is now part of + mbsebbs. + It is now possible to run mbsebbs as a shell, it is even wise + to do so! + Updated for hardcoded paths. + Sending and receiving online messages is now handled thru + mbsed. You need at least mbsed v0.32 Alpha. + Removed the last "gets" function. + + newuser: + No longer exists. + + mbuseradd: + Changed parameters to this program. + Finally worked around the problem of different passwd programs, + we will now let the user supply a new password instead of + creating an empty expired password. The shadow password suite + isn't necessary anymore but it may be wise to use it. + It will not install /bin/bash as user shell anymore, during + loading of the bbs users could get a shell prompt if they were + fast enough. The mbsebbs program is now installed as shell. + + mbsetup: + Updated for hardcoded paths. + Updated screen 1.3, global paths. There is only one screen now. + + mbmon: + Updated for hardcoded paths. + + mball: + Updated for hardcoded paths. + + fbgen: + Updated for hardcoded paths. + + mbfile: + Updated for hardcoded paths. + + mbmsg: + Updated for hardcoded paths. + + mbuser: + Updated for hardcoded paths. + + mbcico: + Updated for hardcoded paths. + If the tty port was locked by another process, mbcico tried + to close the port of that process (and luckily it failed). + Now it won't try to close that port and try to remove the + lockfile. Corrected the logmessages during this situation. + + mbaff: + Updated for hardcoded paths. + + mbsed: + Forgot to close the reginfo file after the CIPM command, + eventualy the bbs stopped logging because mbsed ran out of + file descriptors. + Added the GDST command, to get the status of all (but no + more then 10) mounted filesystems. + + +v0.33/a 25-Mar-1999 + + general: + Changed the users structure for IEMSI flags. + + update: + Open in mbsetup the users database, record 1, and close it. + This will upgrade the users database with new fields. + + mbcico: + Will dispatch mbsebbs when the EMSI string is EMSI_NAK instead + of EMSI_INQ. We then assume the client is an IEMSI client. + In the tty driver changed some error messages to debug log + messages. + + mbsebbs: + Didn't flush the screenbuffer when asking the user to read new + mail so the user couldn't see the prompt. + For OLR download the maxumimum number of file requests is now + taken from the main configuration. + Added IEMSI login support. Tested with FrontDoor 2.11/sw. + Flushed a prompt after file download. + The users filetaglist is removed from disk during logoff. + Deleted Toggle Expertmode, menu 307. + Added Toggle New Mail Check, menu 313, text code ^U1. + Added Toggle New Files Check, menu 315, text code ^U2. + Added Toggle Fullscreen Editor, menu 316, text code ^U3. + Added Toggle Bulltins Read, menu 307. + + mbfido: + Added more debugging messages for netmail processing. Netmail + between a boss and point are being bounced between each other. + At least they don't dissapear anymore. + When forwarding a netmail, all original characters were + lost and messages may have become undeliverable. + + mbsetup: + Added new menu choices that were added to mbsebbs. + + +v0.33/b1 29-Mar-1999 + + general: + Added support for "pktdate" from Tobias Ernst. This is a Y2K + .pkt analyzer and fixer. It is called before each .pkt file + is processed. Indeed, he did also made a Linux version. + Added support for ISDN and TCP/IP nodelist flags. They may + be in the Userflag field or in the authorized flags field. + + mbsetup: + Added .pkt preprocessor installation to global->mail for + the pktdate program. + + mbfido: + Inserted code to call the .pkt preprocessor. + Should insert ^aVia line in forwarded netmails and exported + netmails from the local msgbase. + Will now put netmail for direct links that are not in our + setup (by the stupidity of the Sysop, including me) still in + the outbound (normal status) instead of /dev/zero. + + mbcico: + Added support for ISDN and TCP/IP nodelist flags. + Will now call TCP/IP nodes. This is experimental! It uses the + proposal of Lothar Behet (2:2446/301) of 25 Oct 1998. The + defined flags may be in the User field or authorized fields. + At this moment only the IFC protocol is supported, the ITN + support on port 60177 is under construction. + + mbout: + Added support for ISDN and TCP/IP nodes. + + +v0.33/b2 02-Apr-1999 + + general: + 2 new configuration items, user levels to allow sending of + Crashmail and File Attaches. + + update: + Set Crashmail and File Attach levels in screen 1.4 + + common.a: + Updated nodelist flags and rendundency flags according to + errflags.zc2 dated 20 Mar 1999 (from 2:2/0). I should make + an external table for this. + If a semafore already existed (or was removed), nothing will + be done anymore. When a semafore is created, fsync is called + to make sure it is on disk. + Totally rewritten the .pkt header read function, it is now + more portable and does only one disk read to do that. + + mbfido: + Commented out some debugging logmessages in magic file test. + Corrected the ^aVia lines, in one case the Sysop name was + included, in all cases the year was only 2 digits. For + debugging the milliseconds fields are now different in all 3 + functions that create Via lines. + Now creates .pkt headers in a more portable way and only needs + one disk write to do that. + Now creates message headers in a more portable way. + When creating notify messages, the correct local time is now + entered. + Created a new fidonet date parser, removed the bison parser. + When messages are exported, the fidonet date is generated from + the internal structure, so incorrect received dates are + hopefully corrected on the fly. You should not need pktdate + anymore. + Now sets the local time when a message is imported. + + mbsetup: + When creating new message areas, the security fields will not + be preset anymore. + Removed the gid and start uid values. + Added setup for CrashMail and File Attaches. + + mbsebbs: + Remove an extra close menufile in the menu processing. The + Sparc version aborted with Segfault error on this. + When a message is created, the time is now the correct + local time. + Now sets the local time when a message is received by the user. + When a netmail address is entered, the user will now see the + nodelist bbs name and is asked to verify it. + Only above CrashMail level and if the destination node is CM, + the crash option is presented. + When creating a new user, the gid is now taken from the running + process instead of the setup. + + + +v0.33/b3 06-Apr-1999. + + general: + Due to hardware problems on my bbs, I was forced to takeover + the whole bbs on MBSE BBS, RA is now retired. This means that + lots of things must be solved in a hurry from now on, there's + no way back for me. The MOBO died, it is now replaced by an + old 386/DX33, so I have to fix the parts that slowing things + down. It must be able to run good enough on that board. This + also means that only necessary things are developed from now + on to create a stable and useable version. + + msgbase.a: + The message header read function doesn't seek the whole + messagebase anymore if it needs the next header. This will + roughly triple the speed of scan for new mail. + + mbfido: + Removed check for connected uplink if .tic file was a local + hatched file, there are no uplinks for local hatched files. + Finally found the bug where the TOPT and FMPT kludge info + dissapeared from the netmails causing mail for points to bounce + back to the boss. + Added commandline switch -full to force scan to scan the whole + messagebase for outgoing mail. + If ~/tmp/scan.mail exists the area and message numbers are used + to quick export messages. + It can now attach file attaches. File attaches are not routed. + If the imported file has a magic name, this magic is added to + the file description. + + mbcico: + Will stop calling a node after 3 attempts if there are no + matching ports, or if there is a port error. + + mbsebbs: + Abort on SIGHUP is not logged as error anymore but as normal + log message "Lost Carrier". + With netmails files can now be attached if the user has a high + enough security level. Files must be in translatable DOS range. + Fixed segfault when user tried to select an non existing + filearea. + Creates ~/tmp/scan.mail for posted messages to allow quickscan. + + mbaff: + Creates ~/tmp/scan.mail for posted messages to allow quickscan. + + mbsetup: + Finally added the pull uplink in file and mail group editors. + In the tic area and echomail area editors if the group is + selected and the uplink address is set in the group, the the + first default connection for that area is the uplink. + + +v0.33/b4 13-Apr-1999 + + upgrade: + The ticarea, hatch and magic datafiles are changed in format. + Order of update is important! + 1. Compile all sources, don't install. + 2. Make backup of all .data files in ~/etc. + 3. Announce new files. + 4. Remove *.*.*.*.bill files from the ~/tmp directory. + 5. Disconnect all modems, networks and stop the cron daemon. + 6. Run mbsetup from the source directory. ~/mbb0_33b/mbsetup + 7. Menu 10.2, leave and update the database. + 8. Menu 10.3, leave and update the database. + 9. Menu 10.4, leave and update the database. + 10. If all is well, install the binaries, check mbsetup. + 11. Start cron daemon, connect modems and networks. + + common.a: + Removed errormessage when created semafore succeeded when it + opened file descriptor 0. + + mbcico: + When searching for file requests it tried to use ~/fareas.data + instead of ~/etc/fareas.data. + + mbsetup: + Changed the tic areaname field from 12 to 20 characters. + Corrected screen numbers in hatch and magic pick areas. + Setting the magic "to area" now also uses the picklist. + Does normal logging again. + + mbfido: + Doesn't import the file area name anymore in the filesdatabase. + This needs a workaround because this field is now too small. + The check for quick scanned exported messages failed for + echomail if there was more then one downlink. This forced a + complete scan to be done while everything was really ok. + The .tic file dupecheck is moved to do a little later so that + if some checks fail, the file is not in the dupe database yet. + If the destination path is not available, the file and .ticfile + are moved to the bad directory. + Reads "Fullname" field from .tic file, logging only for now. + Will now process archived tic bundles with extension .c00 where + the numbers can be any digit. (Harald again :=). + More errorchecking in Magic file procesing. + Turned some debugging logging back on. + Corrected a bug that sometimes caused a segfault during tic + processing. + Corrected a routing problem if mail was to be sent to one of + my own points, in case there where more than one point. + + mbmon: + Does normal logging again. + + mbfile: + Calls the Nopper() function now to keep the connection with + the server alive. Good for slow systems and lots of files in + one area. + Removed a small memory leak in the check function. + + mball: + Creates "00index" files in each download directory that is in + range of anonymous ftp users. These files contain the file + names and file descriptions of that directory. A new command + "index" is added. + + mbaff: + Corrected for the .tic areaname size of 20 characters. + + mbsebbs: + Fixed segfault when user was trying to select a non existing + message area. + + +v0.33/b5 26-Apr-1999 + + general: + A new set of grouprecords is created. This is for the announce + of new files, so reports can be created by subject, ie. + Windows, Erotic pictures, Utilities etc. The groupnames are + part of the bbs file areas. + + upgrade: + Set in menu 1.15 the number of newfiles groups. + Create the several newfiles groups. + Install in all bbs file areas the right newfiles groups. + Install in all newfiles reports the right newfiles groups. + + mbsetup: + Will now ask if messagebase must be created if it doesn't + exist. + Implemented the setup of newfiles groups. + Will now show the TZUTC time instead of system generated + timezone (didn't work on RH systems). + + mbcico: + Changed some logging, removed some debug logging. + + mbfido: + Corrected a errormessage when the file import failed in a + non existing area. + If the file is imported in a bbs area, and that area has a + separate Newfiles groupname, that name will be stored in the + toberep.data file for announce. + If a fdb area doesn't exist during file import, it will be + created on the fly. + Doesn't send empty netmails anymore if node has tic messages + off. Only messages with text in it are send now. + Switched .tic description lines logging on again because there + are some strange descriptions coming in. + Fixed a problem when there was only a normal description line + in the incoming tic file, the downlinks got a shortened + description line. + Doesn't strip Hi-ASCII from FILE_ID.DIZ file anymore, only + control characters. Stripping of Hi-ASCII should only be done + by file announce programs (if the moderator wants that). + + mbdiff: + Removed a lot of debug logging. + Removed unarchive functions as they are already in the common + library. + + mbindex: + Removed some debug logging. + It now deletes old nodelists from the nodelist directory exept + the most recent two lists. + + mbsebbs: + Added logging of selected file and message areas by the users. + During mailscan and filescan inserted call to Nopper(). + Wrote a new Getstr function to create Unix accounts, this + one won't accept spaces. (Thanks to Henk de Graaf, a user + who failed to login). + The username won't be converted to lowercase anymore when + his Unix account is created. + The Unix name has to be at least 3 characters. + + mbaff: + In the announce function new uploads will get the area number + as fileecho name so they will be announced by area. + + + +v0.33/b6 30-Apr-1999 + + common.a: + Execute now only logs result messages if there was an error. + + mbaff: + Added High ANSI to Low ASCII translation for echomail areas + that need it. + + mbsetup: + Added High Ascii switch in filefind setup. + Corrected menu numbering. + + mbfido: + After tossing a .pkt the result is only logged if there was + an error. + Removed 2 debug messages during netmail import. + Made logging of "Keep files" final. + Allowed hi-ascii in .tic files for the descriptions. + Build in a check for multiple "Desc" lines in .tic file, + only one is allowed. Offenders are logged, See FSC-0087. + + mbsebbs: + Quick_Bye() is now logged (if possible). + + mbdiff: + The resulting new archived nodelist will now be a lowercase + name instead of a uppercase name. + The new nodelist will be default be archived with the same + archiver as the diff file came in, if it's not available + there is now a fallback to ZIP which is always available. + + +v0.33/b7 10-May-1999 + + upgrade: + ACRmail 0.60 file naming convention is default off for + existing nodes, check their setup. + + msgbase.a: + Added a counter which keeps track of the size of the message + being written. + + common.a: + Will now create unique arcmail names for out of zone mail if + it is turned on. This should prevent creation of duplicate + arcfile names to the same node. + Corrected logging of bestaka_s function. + Doesn't create 00000000.fr0 ARCfile names anymore if our + system is the point sending to the boss. + + mbaff: + In the announce function added logging of the size of the + written message. + Inserted a checkpoint log after each announced block. + Inserted code to split messages after 13000 bytes. + + mbfido: + Removed "Packing Mail" logmessage. + Imported netmail will now allways get the Private status. + Added code to replace the archive comment, currently this + works with .zip and .rar archivers, others don't support + this. + The ^aVia line was inserted at the begin of a forwarded + message instead of at the bottom, it also had the address + of the origin system instead of our own system. + Also moved the ^aVia line in the other 2 functions to the + bottom. + + mbfile: + If during the check for missing files in a download area there + is an extra file and it is not a regular file, it wil be + ignored. This allows the use of subdirectories. + + scripts: + Added support for binkd, if it is installed in ~/bin and the + binkd.cfg is in ~/etc it will be started and stopped as the + rest of the bbs. + + mbsetup: + Added in nodes setup ARCmail 0.60 naming convention switch. + + mbcico: + When there are session errors, the status counter is now + increased with 5, so maximum 6 calls are done. (was infinite). + + +v0.33/b8 23-May-1999 + + mbfido: + Corrected Connection time log messages. + + mbcico: + Restored the original filetime functions. + Removed 2 debugging log messages. + Made the filerequest processor 3 times faster. The remote + doesn't timeout anymore during the search for files. It + must still be made faster. + + mbsetup: + Added the (hidden) option to move echomail areas. + + mbout: + Will also clear the status record of a node with the poll + command if the reason was session errors. + + mbdiff: + Changed available archiver tests, and fallback to ZIP + archiving. It is finally working. + + mbsebbs: + Corrected the reply test for new users when they had entered + their name. + Updated language number 413. + New users won't see the "new files" when they logon the first + time. (They saw all the files on the bbs). + If IEMSI login is aborted or failed, IEMSI won't be used + anymore during login. + When the offline reader packs netmail, only personal mail is + now added to the dowload packet. + + +v0.33/b9 12-Jun-1999 + + update: + Change scripts that call mbuser. + + general: + Changed startup and finish logging of all programs to use + one style. + + mbaff: + New file reports that are splitted over several messages will + now report the right report totals. + Removed some development debugging logs for splitting messages. + + mbdiff: + Removed all extra debugging logs from version beta-8. + + mbuser: + Made command syntax and helpscreen as in all other programs. + This affects the scripts. + + mbsebbs: + For the "comment to sysop" function the .quote file in the + users homedirectory will now be truncated to 0 bytes to erase + its contents. + The "mailout" semafore is now only set at the end of the user + session. + Inserted the Nopper() call in the fullscreen editor to prevent + server timeout when writing a long message. + When writing a netmail to an unknown node, the user must verify + to send the mail anyway. New language prompt 241. + If a user is short with transfertime for a download, it will + be written to the logfile. + + mbfido: + The notify function will now only include areas that are + "Active" in the reports. + Changed the ASCII filtering of reading .tic and FILE_ID.DIZ + files, High-ASCII characters are not lost anymore. + The packet password is now only checked if the originating node + is in our setup. + Before processing AreaMgr and FileMgr messages the right + noderecord is loaded again in case it was replaced. + + +v0.33/b10 19-Jun-1999 + + general: + The man pages are removed. + + mbfido: + Removed logging of file descriptions. + Changed logging of replacing archive banner. + + mbaff: + Removed logging of splitting messages. + Removed several other debugging logmessages. + + mbsebbs: + Removed some debugging logging from download functions. + Corrected a logmessage for new users, language line 66 + is now obsolete. + + mbsetup: + Included (Spacebar = toggle) message in yes/no switches. + + mbuseradd: + Removed the creation of .profile in the users home directory, + this is not necessary because the users shell is mbsebbs. + + +v0.33/b11 29-Jun-1999 + + Most fixes in this release are from Jan van de Werken who is beta- + testing v0.33/b10. + + upgrade: + In mbsetup menu 1.14 set new fields 21 and 22. + In mbsetup, enter menu 8.5, set security levels for transfer + protocols and save the database. + + general: + Added 2 global setup integers for splitting newfiles reports. + + common.a: + Removed Getstr() function. + + mbfido: + Changed AreaMgr and FileMgr message body checks, lines with + more than 1 space or tab and empty lines are skipped. + Removed debug logging for import local netmail. + + mbsetup: + Added in menu 1.14 setup for newfiles reports message split + at a gently size (after a group of files) and a forced + message size. + In nodes setup, new records now default have Advanced tic off. + In nodes setup corrected several numbering errors. + New defaults for global configuration by Jan van de Werken. + To confuse all non-Unix users, all file attaches seem to + come from our A: drive. + Corrected a lot more wrong screen numbers. + + mbaff: + Implemented gently and hard splitting newfiles reports using + the global setup. + + mbsebbs: + Rewrote all user input functions. They should beep now if + the user does something wrong. + Changed the GetPhone functions, the format is not fixed + anymore and it accepts only 0..9 + - characters. This should + work in all countries now. Minimum length is 6 characters. + Changed the language prompts 45, 47 and 48. + Language prompt 46 is not in use anymore. + Removed the logdate2 function, it wasn't used. + Added GetstrP() function (instead of Getstr() in common.a). + Change transfer protocol now checks for the proper security + level. + + scripts: + Updated most scripts, added more comments, added tests to + see if MBSE_ROOT is already set, style fixes. + + +v0.33/b12 08-Jul-1999 + + general: + Removed creation of .VERSION file from the main Makefile. + + mbfido: + The echomail areatag is forced to uppercase. + Removes stale FILE_ID.DIZ files before processing a new one. + + mbsetup: + The new fields 1.14.21 and 1.14.22 where placed at the wrong + column on the screen. + Changed the default values for gently and forced message split + to 27 and 30 KBytes. + Corrected a missing linefeed in sitedoc protocols listing. + Corrected a menu error in menu 8. + Corrected placement of menu item 1.4.11 + Some cosmetic changes in the sources. + Corrected help message in screen 7.x.23, caused mbsetup to + crash. + + mbsebbs: + The info screen now displays compile date and time. + The Area listings for file areas and message areas now break + lines at column 79 and send cr/lf at the end of the line. + Also, area numbers increased to 5 digits (was 3). + Added cr/lf to language prompt 220 in mail.c + + lang: + Shortened prompt 220 with 1 character. + + +v0.33/b13 28-Jul-1999 + + general: + Added structure for file request index. + + update: + Run "mbfile index" once. + Include "mbfile index" in the maint script. + Modify "run_inout" script to start "mbfile index -quiet" if + the semafore "reqindex" is present. + Modify "run_inout" script to replace the fixed .pkt filenames + with stdin from the mbseq program, ie: 12345678.pkt will + become `mbseq`.pkt + Set the filerequest limits in menu 1.17.22 and 1.17.23 + You may specify portspeeds above 57600 in the tty's setup. + + common.a: + Corrected a comment in pktname.c + Changed error logging in execute.c + Moved execsh() from mbcico into common library. + + mbcico: + Removed some debugging logmessages from yoohoo.c + Changed some debugging logging from 'Session' to 'EMSI'. + File request response messages now contain MSGID, PID and TZUTC + lines and request limits. + Filerequest limits implemented. + Filerequest search now uses the index file created by mbfile, + should be fast enough now. + Moved execsh() to common library. + Magic execute request result is now send by mail instead of + an ASCII textfile. + Made some changes in zmmisc.c according to ifmail-2.13, sessions + with D'Bridge 1.58 seems to work now. + Logging of "chat: read return -1" suppressed, this is most of + the time caused by modem hangup during dial and is not a real + error. + During outbound scan missing directories will be created. + A major error in callall.c prevented crash arcmail to be sent. + Rewrote all functions that created mail, less disk I/O. Also + made the .pkt headers the same as the mbfido program did. + Will now handle serial port speeds upto 4000000 baud if your + hardware can handle that. + + mbsebbs: + Finally implemented user access flags. + Removed some debug logging. + Changed "Terminated on SIGALRM" error logging to normal log + with "User inactivity timeout" message. + + mbsetup: + In edit users toggle of flagbits is now correct, no "notflags" + anymore. + Added setting of filerequest limits in menu 1.17 + Changed fieldlength for integers to 7 digits. Now you can + enter all available portspeeds in the tty setup. + + mbfile: + New command: index. This will create ~/etc/request.index + which contains a sorted index of all requestable files on + your bbs. This index is used by the mbcico request processor + to speed up the filerequest search. The "reqindex" semafore + is removed when it is finished. + + mbfido: + Creates "reqindex" semafore if there were files imported. + The check for stale FILE_ID.DIZ files was at the wrong point. + Will pack the mailqueue if the temporary .pkt file is bigger + then the maximum size of that .pkt and creates a fresh one. + + mbseq: + New program. Write a 8 character hexadecimal unique sequence + number to stdout. This can be used in shellscripts to create + unique filenames. The sequence numbers are fetched from mbsed. + + +v0.33/b14 16-Aug-1999 + + general: + This is the first public release. + + mbcico: + Revised zmodem protocol, changed timers etc. Used latest + information (Aug 1999) found at Omen Technology's ftp site. + In the openfile function added support to skip files already + present in the inbound. + Hydra and TCP protocol transmitters now send the filetime + rounded up to even seconds just like zmodem already did, so + the filetime is always the same on DOS (Fat) as on Unix + systems. + Zmodem will now skip files already present in the inbound. + Hydra will now skip files already present in the inbound. + TCPproto will now skip files already present in the inbound. + Changed EMSI debug logging, should be more clear now. + Does finish zmodem session with D'Bridge [1a] 1.58 now. + + scripts: + Added support for UPS. The UPS software should set the + semafore "upsalarm" when it's running on battery power. Most + utilities will the not run anymore to prevent data-loss. + The semafore "upsdown" should be set just before the UPS + starts the real shutdown. This will force the mbstat program + to timout after 30 seconds. + + mbstat: + The wait command will only wait for 30 seconds instead of + one hour if the semafore "upsdown" exists. + + +v0.33/g1 01-Sep-1999 + + general: + Many brave souls have downloaded and tested the previous + version. Most changes in this release are bugs found by all + these people. + Added checks in the Makefile to test the MBSE_ROOT variable, + written by Jan van.de.Werken. + Added checks in some Makefiles for root privileges for + make install. + + upgrade: + Enter mbsetup 1.1.10 and set the name to "bbs". + Check UnSecure switch in echomail areas. Should be off unless + you need it. + Remove the line LOGDEBUG from $MBSE_ROOT/etc/client.conf + + common.a: + Added the original copyright in for the 32 bits crc code. + Checking .pkt header now checks valid system aka's. + Removed reading LOGDEBUG from ~/etc/client.conf, wasn't used. + Added SigName for Alpha CPU (not tested). + + mbfido: + Removed debug message in addpkt. + Added 2 extra DeleteVirusWork() calls in tic processing at + points where processing is aborted and left the temp directory + with unwanted files. This also happened when a virus was + detected. + Will now import echomail from points who are connected to + the normal nodenumber instead of the hub/host number. + Will now try to import bad netmail into a netmail directory + instead of losing it. + Changed the check for received echomail, the sending node + must be in the export list, unless the msg area UnSecure flag + is set. + Implemented the connected systems Excluded flag for echomail + connections in import/export echomail. + Implemented the connected systems Excluded flag in the AreaMgr. + The Notify function now also sends statistic reports to the + node. + Fixed a routing problem (I hope) for out of zone routed + netmail. + When scanning outbound netmail the domain field is zeroed in + the destination address to prevent garbage in the domain field. + Patches by Jan van.de.Werken, files import now set the name to + FileMgr instead of sysop's name. + AreaMgr and FileMgr generated messages now have AreaMgr or + FileMgr as "From" name instead of the sysop's name. + + mbcico: + Restored some zmodem code that was changed in beta-14. + Added some other code for error handling (Carrier lost). + Zmodem file transfers are streaming again. + Added a tty flush in the TCP/IP transmitter. + Solved the EMSI handshake problem with T-Mail mailers. + + mbsetup: + Added menu 1.1.10 to setup the name of the bbs startup + account. The default is "bbs". + Changed ImpSeenby switch in UnSecure switch in message areas + setup. + In message areas the Excluded flag is added to the systems, + you can now disable a node from an area if a moderator wants + that. + In edit users added a switch to toggle OLR Extended Message + Info in OLR download. + + mbsebbs: + Now reads the bbs startup name from the configuration instead + of using the hardcoded name "bbs" + Writes a door.sys dropfile in users homedir. The first line is + fixed to COM0 forcing doors to run in local mode. The second + line is 0, meaning 0 baud is local mode. Let's see how this + works. + Added some logging for the OLR upload function. + Now tests lowercase filenames also for reply packets created + by MultiMail. + Now includes the ^aMSGID string in BlueWave download messages. + Optional includes all other kludges in BluwWave download. + + +v0.33/g2 02-Oct-1999 + + general: + Moved the mbsed back into this archive. Included the new + installation procedure. + Moved the example files into this archive. + + upgrade: + Remove $MBSE_ROOT/bin/fbgen. + If you want to switch off CFG.dospath, be sure your outbound + is empty or mail and files will get lost!!! Thus: type + "mbout stat" and see if nothing is there before you do that. + + common.a: + Patches by JvdW, if CFG.dospath is empty then fileattaches + will contain Unix style filenames, otherwise the ataches + are translated to DOS style. + + dbase.a: + If SearchTic and SearchMsg function the area must be active + in order to be found. + + mbaff: + Removed a bug in scanning uploads function that created empty + lines in the toberep.data file. Also forced the long + description strings to be no longer then 48 characters. + + fbgen: + Finally fixed this one. Can now read multiple description + lines from files.bbs. Renamed to mbfbgen. + The dangerous gets function is replaced. + + mbsetup: + The edit path function now checks if the directory has read + access instead of write access, it might be on CD-rom. + + mbfile: + Skips the kill and pack functions on CD-rom areas. + Skips the check of files on disk against the database on + CD-rom areas. + + mball: + Doesn't create 00index files on CD-rom areas anymore. + + mbcico: + More bugfixes in TCP protocol. Better error handling for + disconnected sessions. + Creates inbound tmp directories when they don't exist. + Now presents the EMSI info from the tty records if + possible. + + script: + Corrected a syntax error in the maint script. + + mbfido: + The areamgr and filemgr names are not hardcoded anymore, + the names presented are the first names defined in the + setup. + Outbound processing now also works if CFG.dospath is empty, + then Unix style fileattaches will be created. + Rewrite of file import function by JvdW to fix some bugs. + FileMgr and AreaMgr global connect and disconnect now + check if the area is set to Active. + Rewrote ARCmail naming, zero length archives older then + 6 days are deleted. If a zero length archive then still + exists, the extension number is bumped. This should + prevent using the same archive name on the same day to + nodes with more then one mailsession each day. + + +v0.33/g3 18-Oct-1999 + + general: + Ideas for generating ARCmail names by Sean Rima and JvdW + implemented. + Lot's of cosmetic stuff to make commandlines, help screens, + more clear and the same for each program by JvdW. + + update: + In mbsetup 1.14.15 check that this is zero or the number of + old days you want echomail rejected. + Check in mbsetup nodes->mail that "ARCmail a..z" is off + for nodes that can't handle that. + + mbcico: + File attaches that are no longer on disk are now correctly + removed from the flo files. Changed logging for this. + The scanout function now removes truncated ARCmail files + that are not of the current day or are older then 6 days. + Corrected a bug that the inbound directory wasn't created + when it didn't exist. + + mbsebbs: + Now allows netmail crash replies. + Can now reply netmail that came in via the UUCP gateway, + when the reply is saved the message is readdressed to the + gateway. + Disabled the download transfertime check before starting a + download. It gave unpredicteble results if the users previous + download cps was bad for some reason, the user couldn't + download. + + mbsetup: + New menu item in 1.14, "Reject old", to reject incoming + echomail older then this number of days, or zero to not + check the age. + In nodes->mail setup added a switch to allow a..z + ARCmail archives extensions. + Made editing log (debug) switches more clear. + Some editing keys now beep if you do something wrong. + + mbfido: + The pack function now supports 'a..z' ARCmail extensions + if this is on for that node. + It's possible to reject too old echomail. + Short commands and options now displayed in the help. + The fileforward netmail now set's the filemgs name first + character to uppercase. + The uploader name with file import now only has one + name anymore, the first character is capitalized. This + line should not be too long, this gives ugly listings. + System aka's in the same zone other then the aka of echomail + area are added to the seen-by lines. + Added experimental zonegate support for echomail. + Removed some debug logging in tic processing. + + mbaff: + Short commands and options are now possible, like other + programs already did. + + mbout: + Short commands and options are now possible, like other + programs already did. + The scanout function now removes truncated ARCmail files + that are not of the current day or are older then 6 days. + Suppressed the help message for file attach, it is not + yet implemented. + + mbfile: + Short commands and options now displayed in the help. + + mbmsg: + Short commands and options are now possible, like other + programs already did. + + mball: + Short commands and options now displayed in the help. + + mbstat: + Short commands and options are now possible, like other + programs already did. + + mbfbgen: + Handles files.bbs lines of 255 characters instead of 80. + + +v0.33/g4 05-Nov-1999. + + mbfido: + The final seenby lines are deduped and sorted before writing + them to the in and exported echomails. + Areamgr and Filemgr messages now have a capitalized first + "From" name character. + Areamgr new function: flow reports. Can be requested by + %flow and is automatic generated with notify reports. + Areamgr, increased the area tag from 20 to 25 characters + in the notify reports and %list, %query, %unlinked response + messages. + Corrected a bug creating garbage at the end of the magic + execute commandline. + + mbsebbs: + Reply to UUCP gateway didn't work in real live, it seemed + that the official UUCP gate had no ':' character after the + REPLYADDR and REPLYTO kludges, while my testsystem running + ifmail 2.12 for the gate does. I now test both cases. + + mbcico: + Implemented remove ARCmail older then n days. + + mbout: + Implemented remove ARCmail older then n days. + + mbsetup: + Added integrity check for edit message groups. + Added integrity check for edit fileecho groups. + + +v0.33/g5 13-Nov-1999. + + upgrade: + Edit /etc/inetd.conf to add "-t ifc" for standard ifcico + protocol, "-t itn" for telnet protocol. + If you don't use the original binkp mailer, you may want to + add entries for the binkp protocol, this will show the + remote that you don't support the binkp protocol. + The installation scripts are updated. See the file SETUP.sh + on how the files /etc/services and /etc/inetd.conf should + look like. + + mbcico: + Implemented "not supported" binkp protocol. + Revised commandline parameters, in TCP/IP slave mode the + mode must be given on the commandline, -t ifc for standard + ifcico protocol, -t itn for telnet protocol, -t ibn for + binkp protocol. + Starting mbcico without arguments will show the help screen. + Now all programs do that exept the mbsebbs binary. + + mbsebbs: + Changed language prompts 214 and 215. + Added language prompt 46. + Added message export to file function. The file will be saved + in the users private homedirectory, the filename is created + as _.msg in MS-DOS format. + Corrected display header of users home directory file list. + Added import file in message function, the file must be in the + users private homedirectory. This only works in the fullscreen + editor. + + mbfido: + Inserted 2 sync() calls during mailtoss. I hope this prevents + temporary missing archives and .pkt files. + New command, "tag", writes areas tagfiles for each mail and + tic file group to the ~/doc directory. Filenames are automatic + created. + + mbsetup: + In edit tic area and edit message area editing of connected + systems now uses the existing node setup. + Made a new menu selector for areas with Global and Move + options. + Implemented new menu selector in message and tic areas select. + If you jump directly to a message or tic area with select, the + offset is recalculated to that area range. + Added global editing functions in message areas setup. Functions + are add, delete, change connected systems, aka to use and some + other settings. + Edit a nodes aka's is checked if these aka's are used in tic + and message areas. + Delete a node is checked against aka's used in tic and message + areas. + +v0.33/g6 22-Nov-1999 + + mbsetup: + Removed a bug where you could not add new aka's to nodes due to + the aka's checking. + With database intergrity checks the cause of blocked actions + is now logged in mbsetup.log + If you change the number of connected systems or maximum groups + in global setup, the databases affected will be automatic + updated. + + mbfido: + When writing a notify message to selected nodes all other nodes + received status messages. + Corrected uploader name, removed "BBS" string. + Installed patches from JvdW in file forward to correct some + segfaults with the subject variable. + The local hatched files are now moved to the inbound so that + the unarchiver programs can find these files. + + mbcico: + Added very experimental binkp protocol. Handle with care and + at your own risk. This isn't finished yet. + + SETUP.sh: + Fixed the script, there was one "fi" missing so the script + crashed and didn't do all changes. + + +v0.33/g7 05-Dec-1999 + + mbcico: + Fixed some logging in binkp protocol. It works for normal + mail and files transport. + + mbsebbs: + Export message to users work directory did not put the + message in the work directory but in the home directory. + + mbfido: + Netmail to unknown bbs users are now readdressed to the + sysop. Should be a bounce message. + Added a experimental test for empty imported netmails. + The netmail area Private flag is checked to see if we keep the + original Private flag or force imported netmail to Private. + + +v0.33/g8 12-Dec-1999 + + general: + Changed the Makefile, make zip now puts FILE_ID.DIZ in the + root of the directory tree so that file processors will + find it now. This is a version of this file. + + common.a: + Removed and changed nodelist lookup debug logging. + + mbuseradd: + Now check the existance of the users home directory, if it + is found then it is removed before the home directory is + created again. This fixes problems with RedHat 6.1. + + mbfido: + Global AreaMgr commands cannot disconnect message areas anymore + that are mandatory. + Removed some routing tracking debug messages. + Added check to see why not connected echomail is imported to + the netmail of the last user in the userbase. + Changed check to "Sysop of z:n/n@network" to readdress to + the sysop's real name. + After readdress a netmail to the sysop, the usersearch is now + done again. + If locking the message base during import fails, import is + aborted. + + +v0.33/g9 18-Dec-1999 + + upgrade: + If you ever used DOSEMU then do a rm -Rf .dosemu in each users + home directory. The ownership of these files are changed so + they are created again when the user runs a door for the + first time. + If you have created ttyinfo records with just digits in it + for the /dev/pty/0 type tty entries, you need to change them + to pty/0 type entries. The example etc files are now containing + these entries. + + general: + All sources recompiled with memwatch. I will not name all + places where I found memory leaks, it was a lot. Still busy + finding them, but most programs are allright now. + You can turn memwatch on and off in the file CONFIG. If you + change it, do a "make clean" before recompiling the sources. + Changed my Fidonet address, the testsystem is listed now and + removed my old e-mail address which was not valid anymore. + Changed the installation script. + For RedHat 6.1 and newer a different /etc/rc.d/init.d/mbsed + file is created then before because the su command behaves + different. The install script will try to detect this. + Thanks to Juergen Heisel for finding this problem. + Changed more startup and shutdown scripts. + Changed language prompts 306, 311 and 324 to reflect + GigaBytes storage instead of MegaBytes. + Changed language prompt 327, it had a space too many at the + end. + + common.a: + In the attach function implemented the global leavecase + switch to be able to turn off the forced uppercase for + file attaches when dos translation is on. + + mbfido: + Found a bug where mbfido ran out of file descriptors during + toss, only about 1012 messages were tossed and then the whole + thing started tossing everything to bad. Jim Hansen who + reported the problem, reported that tossing 37500 messages + now works fine. + Added the commandline switch -unsecure to be able to run an + unsecure toss, ie. no originating checks are performed. + Handle with care. + Forwarded netmail packets got the wrong from address in the + .pkt header. + Added fsync calls after every write to a message packet. + When writing .tic files to other nodes now the real aka of + the tic area is used in the From address instead of bestaka + match of the destination. + All system aka's in the same zone are now added to the .tic + Seenby lines. + Will now gently stop processing if the upsdown semafore is + detected. + Added a check with file import that there are no more then + 25 description lines. + + mbsebbs: + Added new controlcode, ^KM displays the users lastread pointer + in the current message area. + When reading new mail at logon, the users lastread pointers + are not updated anymore in echomail/news areas to prevent that + the users skips unread messages. + Only if a message area is Public/Private and a reply is given + the user gets the question Private y/N. On other cases the + flag is automatic set. + With netmail reply if enough security level a file may be + attached. + The door.sys dropfile date formats are now fixed. Depending + on the menu settings it can be original (pre 2000) format or + have four digit year numbers, the new style. Writing the + dropfile can also be suppressed. + Removed the setuid calls before and after running a door, + mbsebbs now always runs as user "mbse". + The $HOME environment variable is now forced to the users + real home directory, even if mbsebbs is started as user bbs. + When the user logs in, the existance of the subdirecties + .dosemu/run and .dosemu/tmp are created in the users home + directory if they don't exist. DOSEMU is happy with that. + Because of this, all files in the users directories are now + only owned by user mbse. + Moved the setup of last message and file area to a later + startup point in userlogin. + Autoexecuted menus are now also checked for user security + and user age. + Fixed the screen output of several bbs list menus. + Now handles the /dev/pty/0 device names found on newer + Linux distributions. + It will now also create the necesary subdirectories for the + /dev/pty/n devices. + + mbaff: + The written messages statistics counters always counted at + sunday in januari. + + mbmsg: + Added message post from a file function. + + mbsetup: + With the filebase editor I got segmentation faults on a Sun + Sparc machine, changed the filedate calls. They show up the + local time now also. + Added the global editor for the tic areas. + Added in menu 1.3 a switch to leave to case for .flo files + original, ie. not forcing it to uppercase. + Added menu creation in menus setup. + Added setup to suppress the creation of a door.sys dropfile, + and the ability to write the years in four digit format in + the door.sys file. Newer doors seem to understand this. + Added delete menu item in menu setup, finally. + Added menu item move. + The menu editor now shows the autoexec menus with the + lightred lowercase "a" at the selection key position. + When a new config.data is created, the default loglevels + are now set to normal values. + + mbcico: + Forgot to implement the NoTCP global and per node flag. + If you are not permanent connected to the net, use these + to prevent the use of internet protocols. + + mbmon: + Screen 5 now calls Nopper() to keep the server alive. + Corrected screen display numbers 5 and 6. + + diff --git a/ChangeLog_2000 b/ChangeLog_2000 new file mode 100644 index 00000000..18a6a520 --- /dev/null +++ b/ChangeLog_2000 @@ -0,0 +1,668 @@ +$Id: ChangeLog_2000,v 1.1 2002/06/01 13:55:40 mbroek Exp $ + + MBSEBBS History in 2000. + + +v0.33.10 24-Jan-2000 + + general: + Changed version numbering. From now on, minor odd numbers + are testversions, even are stable. Same as with the + Linux kernel. + Changed the setup script, it should now detect SuSE systems. + This is not tested. + + update: + Remove (as root) all bbs users from /etc/ftpusers. They are + not needed (and never were). + Compile and install this release. + Kill mbsed (killall -9 mbsed). + Edit $MBSE_ROOT/etc/mbsed.conf, remove the line with logdebug + and the commentlines above. + Start mbsed again (/opt/mbse/bin/mbsed). + Then start mbsetup, open the global menu 1, and exit. Answer + yes to update. + If you have any echomail passthru areas, give them a + message base path. Passthru doesn't exist anymore. + + common.a: + The file_crc function now supports the usleep(1) code + for background processing. + The logfunctions now replace and with spaces. + + msgbase.a: + Corrected a bug in the Pack function when the headerfile + was corrupt. If the header is corrupt, the index file is + used to find the right recordposition again. Errors are + logged. + + mbsed: + Removed the logdebug loglevels. Logging is fixed now. + Changed the answers for the SBBS command. + + mbsetup: + Added a global setup screen for the ftp server. + Added a switch in the menus setup for doors to set a flag + to create door.sys files for dosemu/Vmodem use. + Revised the message area setup screen. + Changed text's in global mailer setup to indicate that the + mailer flags are for TCP/IP connections. + + mbuseradd: + Doesn't add usernames anymore to /etc/ftpusers. This is not + needed for standard ftp security. + + mbcico: + Added send filerequest to the binkp protocol. In single + batch mode, you need to connect a second time to get the + request response. This is normal single batch behaviour. + Nodelist flag for Binkp mode is XX. (For POTS/ISDN XA). + Added received filerequest to the binkp protocol. In single + batch mode this will put the files on hold. Multiple batch + mode works now but is only tested against another mbcico + mailer. + Calling internet nodes could not use a forced hostname or + IP address. Fixed. Added search in nodes setup phone + fields for hostname/IP address, search in nodelist location + entry (2 nodes on the world do that, I needed one of them), + and the IP notation in the nodelist phone field (000-...). + Hostnames after the flags are not resolved, hostnames + should be in the system name field. + In the binkp protocol the flags from the global mailer + setup are sent as our flags. + + mbsebbs: + The next two pathes are from Ken Bowley. + Changed the fullscreen editor with patches from Ken Bowley. + Improved behaviour for inserting and deleting text. + Changed the door.sys creation, if the COM port option in + the menu files is on, the door.sys file writes COM1 in + it with a portspeed of 115200. This is for running doors + under dosemu and a patched Vmodem. + Made newmail scan and other checks for personal mail case + insensitive. + The fullscreen editor source now has an extra define FSEDIT + to enable heavy debugging logs. + It didn't respect the BBS closed status on lines that did + not honor ZMH status. + Removed "Re:" debug logging from mail.c + + mbfido: + Corrected the queue path for tic passthru areas, the + destination path missed a /. + Delete file from the inbound with passthru areas is now at a + later point. + Removed the message passthru switch, you needed and area + anyway. + + mbstat: + Corrected screen output when it was waiting for the bbs to + close. + + mbftpd: + New! Special ftp server for MBSE BBS. Should use BBS users + access restrictions etc. Doesn't work yet so don't use it. + It is included in the distribution, but not compiled or + installed. + + +v0.33.11 07-Mar-2000 + + upgrade: + Change the CLIENT line in ~/etc/mbsed.conf, the authcode must + now come behind the hostname. Remove the AUTHCODE line. + Kill the old mbsed, start the version from this version. + The same changes must be made to ~/etc/client.conf + Run mbsetup, goto 1.17 and 1.18 and set it up for your system. + Check the QWK area names in the message areas: if there are + areanames longer then 13 characters edit them so that they + fit in the 13 characters limit. In previous versions this field + was 20 characters. + + general: + Added global config to create www pages for downloads. + Included the mbftpd directory in the main Makefile. Don't use + the mbftpd program yet! + Updated the documentation, some parts were 2 versions behind. + + common.a: + Execute external programs now lowers process priority to 15, + and restores to 0 after execution. This should make running + (de)compressors and other utilities "nicer". + If a client fails server authorization, it will now proper + close the server connection. + + mbsed: + The syntax of the client lines in mbsed.conf is changed, + multiple lines are now allowed, hostnames and authcodes must + be on one line now. + It is now possible to close the connection when not authorized. + Minimized the number of response codes. Updated the + documentation. + + mbsetup: + Added global setup menu for the html pages creation. + The length of the QWK area names in the message areas setup + is changed from 20 to 13 characters for the QWK specifications. + Removed selection of menu number 216 from the menu editor. + + mball: + The index command now also creates index.html files for web + clients. The index files are stored in the download directories. + If a download directory contains .gif or .jpg files then + thumbnails will be created and the thumbnails will be used in + in the index.html files. + You need "convert" of the ImageMagick package to use that + future. + + mbfile: + Added 'index*' to the list of filenames that isn't checked + with the mbfile check option. + Pack and Move file functions will now also delete or move the + thumbnail files. + + mbcico: + Changed the binkp receiver timeout code to prevent a hanging + receiver. This only happens sometimes on a Sun Sparc (and + still does). + Changed the modem chat logging. It is now visible what is + really send and received from to the modem. + + mbsebbs: + Added wordwrap in the fullscreen texteditor. Patches by + Ken Bowley. + Replaced hardcoded prompts in offline.c with language prompts. + New prompts are 66, 228, 229, 256, 260, 277, 297, 338, 374, + 377, 391..397, 411, 425, 439..460. Replaced a language prompt + in the Language load function with a hardcoded message. + Removed menu option 216, download pointmail. + Added QWK download and upload. Not fully tested yet!! + Added ASCII download. + File descriptions with color info will now be displayed in + color. + + mball: + File descriptions with color info suppresses the color info + in the all/newfiles listings and 00index files. + + +v0.33.12 24-Apr-2000 + + upgrade: + After compiling and installing set the amount of free + diskspace in mbsetup menu 1.4.22 to your choice. + Kill and reload mbsed. + If you use the web interface for the file areas create + the directory css in your webserver document root and copy + files.css from the distribution archive in it. Then run + mball index. Customize files.css to your taste. + + general: + Changed the ~/tmp/scan.mail file to ~/tmp/echomail.jam and + ~/tmp/netmail.jam in the standard JAM format. + Added file README.GoldED + + common.a: + Added function to check for free diskspace on ext2, msdos and + vfat filesystems, except floppies. + + mbsetup: + New nodes now have "Notify" default off. + Renamed menu 1.4. + Added minimum diskspace setting to menu 1.4. + Added force FNC switch to the nodes setup. + + mbfido: + Exported netmail are checked until any tearline, not MBSE's + tearline alone. + If exported echomail doesn't have a ^aPID kludge, the ^aTID + kludge will be inserted anyway. + Removed some debugging info from the ARCmail pack function. + When netmail to points is written with GoldED there was no + ^aTOPT kludge. Any missing ^aTOPT, ^aFMPT and ^aINTL kludges + are now added if they were not found during mailscan. + The unarc/viruscheck directory is now completly removed after + use and created again. Sometimes files with strange names + were left behind with a normal recursive remove. + Now checks at regualar points the free diskspace. Execution + aborts if it is too low. + + mbsebbs: + Inserted ^aINTL: kludge instead of ^aINTL without colon. + Corrected the users age calculation, the users age increased + one month after his birthday. + + mbsed: + Added some fsync() calls to ensure disk writes. + Now starts logging reginfo locking after the fifth attempt. + + mbcico: + Made some small changes to the binkp batch function. + Added free diskspace check during outbound calls. + Added BSY command support for binkp during file transfer stage. + Changed binkp timer reset points during file transfer stage. + The binkp receiver now checks diskspace before accepting a + new file, it sends BSY if too low to the remote. + If in nodes setup the FNC flag is set, the binkp protocol + will now send old 8.3 uppercase filenames to the remote. + + mball: + The WWW pages now include a stylesheet so it is more easy + to create a personal look and feel for the pages. The + stylesheet goes into htdocsroot/css/files.css An example + is included in this distribution. + + mbaff: + Added free diskspace check. + + mbindex: + Added free diskspace check. + + mbdiff: + Added free diskspace check. + + mbmsg: + Added free diskspace check. + + mbuser: + Added free diskspace check. + + +v0.33.13 12-Jun-2000 + + upgrade: + Make all files and install them as root. + If you use GoldED or other mail utilities as another user + change $MBSE_ROOT/sema and $MBSE_ROOT/tmp to mode 777. + Kill mbsed with signal 9. + Now start mbsed again (/opt/mbse/bin/mbsed). + + general: + The install script now sets the $MBSE_ROOT/sema and tmp + directories to mode 777. + Updated the internet news gate documentation. + + msgbase.a: + Now creates all JAM files with mode 0666. + + mbcico: + The binkp driver skipped aka's when the node number + was zero. + Changed on hold logmessage. + + mbfido: + When forwarding a netmail, a temp file was closed twice, + this caused a segfault on glibc-2 systems. + In the logfile areamgr notify messages had the same orgin + and destination address. + + mbsed: + Changed the signal handlers. It will now allways try to + cleanup lost clients. It will also not hang anymore when a + client aborts for 10 minutes and use 100% cpu time. + + mbsebbs: + Changed logging in filearea select. + Permanent removed download checktime function, this was + already off. + Added error logging for setting filearea 0 during logoff. + Only netmail replies via an internet gate are now readressed + to a UUCP address. + + +v0.33.14 03-Jul-2000 + + upgrade: + Read this section carefully!!! This is a large update. + Backup the whole BBS configuration. + Compile and install all programs. + Kill -9 pid of mbsed. Restart mbsed. + Delete file ~/var/mailer.hist + Delete in all outbounds the *.sts files. + Start mbsetup, set item 1.5.14 if you want new users to + get an email box, you should do this. + Set 1.13.4, 1.13.5 and 1.13.6 to the node where the pop3, + smpt and nntp servers are, normally this is "localhost". + Set 1.13.10 to the Fidonet aka you will use for incoming + and outgoing email via the Fidonet UUCP gate. + Set 1.13.11 to the node address of the Fidonet UUCP gate. + Set 1.13.12: use "No ISP" if you dont't have internet + access, you will then use the default Fidonet UUCP gate. + Set it to "Dial ISP" if you connect sometimes to the internet + of have a cable modem without a DNS entry. Set it to + "Perm ISP" if you have a permanent connection to the internet + and you system has a valid DNS name. + With mbsetup open the userbase, close it and answer yes to + the save question. If you want existing users to have + private email, set 15.36 for each user to yes. You should + do this to accept email from the UUCP gate. + Open the message areas setup (9.2), exit and answer yes to + the save question, this will update this database. + Remove any existing email areas in the normal mail setup, + menu 9.2 (you should not have had any yet). + With mbsetup open menu 16, this will add the default services + database. Add entries as needed. + With mbsetup open menu 17, this will add the default domain + translate database. Insert entries as needed. Move the new + entries so that the .fidonet .ftn translation is the last + entry. + Go back to the start of this section and check! + + general: + Introduced users private email. Each user has (if set) three + email boxes: mailbox, archive and trash. + New system settings GiveEmail, POP3 host, SMTP host, Email Aka, + UUCP gate aka and Email mode. + New menus for email: 216 Read email, 217 Post email, 218 Trash + email, 219 Choose mailbox, 220 Quickscan email. + New user settings Email and plain password. + All users can now have private email boxes. + In normal mail areas you can't create email boards anymore. + Some documentation is updated for new features and some + changes are made to explain some things better. + Added a services database. These are mail accounts that can + perform certain actions. + Added domain translation database, this will translate fido + domains to internet domains and back. + Changed the message areas to contain newsgroups information. + + common.a: + The nodelist lookup function didn't recognize the internet + protocol flags followed by a colon and portnumber. + Move some functions from mbfido and mbmsg in here. + Added characterset convertor from ifmail. It uses the same + maptabs. + Moved some other functions into this library. + + mbinet.a: + New library, internet protocol interfaces. Has interfaces + to SMTP, NNTP and POP3 protocols. + + msgbase.a: + The MsgIdCRC and ReplyIdCRC values were not set in the message + headers. + Added protection for too long subfield strings. + Made some stringlengths longer, following JAM specs. + + clcomm.a: + When closing the server connection the autorisation table will + now be freed before the program ends. + + mbcico: + During binkp calls the mailer history wasn't filled with + session information. + Some system names were too long for the history info. + Will now properly initialize the mailer history file when it + doesn't exist. + With incoming calls the "Node not in setup..." debug log + message at startup is supressed. + Will send netmail with Immediate flag set allways. + Will now also poll non-CM systems outside ZMH. You should + know what you are doing! + The format of the outbound .sts files is changed to prevent + problems on Sparc systems. + Made the FTS-0001 sessions work again. + With outbound sessions the RH1 link option is set. + If a file is received and there is alread an empty file with + the same name, that one is removed to prevent filename extension + bumping. This may be a leftover from a previous failed session. + + mbout: + Won't create polls for nodes not in the nodelist, nodes that + are Down or Hold. Removing polls is always possible. + When multiple polls on the commandline are given, if one of + these nodes is down/hold, then all other polls are still + created. + When creating a poll for a non-CM node outside ZMH, a warning + is given and written in the log. + Added the fileattach command. + The format of the outbound .sts files is changed to prevent + problems on Sparc systems. + + mbfido: + In the rollover function the mailer history is truncated each + month. The current and previous month records stay. + When forwarding .tic files, the files are now attached to the + routevia address if this is set for a node. + Processes scanning of netmail with the immediate flag set. + Added more debugging info for the scan function. + Uses the services database to decide incoming netmail to handle + by AreaMgr, FileMgr or Email. + Moved some functions to common.a + Configuration errors found during mailscan are now logged. + Removed a small memory leak from the magic manager. + Added experimental email import from a FTN UUCP gateway. + The AreaMgr now refuses to disconnect a node who is cutoff from + an mail area to prevent reconnection. + If from a received tic file the accompaning file is missing in + the inbound the errormessage will now say that instead of the + wrong message "Permission denied". + + mbsetup: + In edit fido aka's when you remove a secondary nodelist the aka + is now automatic erased. + The line editor now checks if a line only contains spaces, if + so, the line is returned erased. Trailing spaces are still + possible! + Added global settings and user settings for the new options. + Added 5 new menu choices, Post Email, Read Email, Trash Email, + Choose Mailbox and Quickscan Email. + Added setup for the services database. + Added setup for the domain translation database. + Corrected some sitedocs chapters numberings. + Added setup parameters for news in the message areas editor. + For new installations there will now be a default system + location filled in. This will prevent "mbstat open" to hang + for sysops that didn't do proper system setup. + + mbmsg: + The post function created the semafore scanout instead of + mailout. + Moved some functions to common.a + Messages written with GoldED were deleted by age because some + GoldED versions don't set the Processed date. + + mbsebbs: + Added DoNop() to message read function to prevent losing the + connection with mbsed with long messages. + Added netmail Immediate option for non CM nodes. + Replaced some hardcoded prompts by language prompts. + Duplicate phonenumbers check is finally working. + Added better check for personal mail. + The messagearea overview now also counts messages written by + the user as personal messages. + Changed the newuser function to set system and bbs password + in one function so the user creates the password only once. + During normal login (via user bbs) the plain user password is + stored in the userbase. This will not work with Unix login. + New textcontrolcode: Control-K + N, current e-mail mailbox name. + Updated the change password menu command to use the new + mbpasswd wrapper. + If a user decided to Quit check for newmail, the bbs crashed + with a segfault. + Will not insert Re: in the subject of the subject contained a + Re^2: produced by GoldED. + Patched the fullscreen editor with code from Johannes Lundberg + to correct the "invalid screencoordinates" problem. + Adds the ^aCHRS kludge with CP437. + Will now free the server authorisation tables on exit. + The users plain password is now written to door.sys + + mbsed: + Removed the fsync calls in the logfile write functions, + it never did any harm and the fsync calls do really slowdown + the system. + The locking functions only waited for 2,5 second instead of 15. + + mbpasswd: + New wrapper, sets a new password for a user from the + commandline. + + mbuseradd: + Doesn't ask the user for a new Unix password anymore, mbpasswd + is used instead to set the password. + + lang: + Added 10 new language prompts, 461 upto 470. + Changed language prompts 39, 40 and 388. + + mblang: + Corrected a bug reported by Johannes Lundberg (2:206/149). + + mbuser: + Will now remove blank records at the end of the database. + + mball: + The index function now translates the characterset from CP437 + to ISO-8859-1. + + mbdiff: + Removed a small memory leak. + + mbindex: + Writes an error in the logfile when no nodelist is defined for + a network that is defined in the network setup. Processing of + all other lists will be completed. + + mbmon: + Will now free the server autorisation table at exit. + + mbmail: + New program, use this to replace ifmail from the ifmail package + for the email gateway if you had that installed. If it is then + it's probably configured in /etc/sendmail.cf or whatever other + MTA you are using. + + +v0.33.15 08-Oct-2000 + + upgrade: + After installing the new binaries kill mbsed. Start mbsed. + Start mbsetup, open global menu 1, exit and save. This will + set the default value for newsarticles dupe database size. + Set the real news areas to the type News instead of Echomail. + Copy mbsebbs-0.33.15/script/run_inout to $MBSE_ROOT/etc + Compile the nodelists again with mbindex. + + general: + All version information for the sources now comes from the + generated file config.h + Tested on Slackware 7.1 (i386) and Debian 2.2 potato (Sparc). + Changed the SS() macro to MBSE_SS() to prevent conflicts + with system libraries. + Changed the way debug logging is, see the file DEBUG for + details. + Updated the ftscprod list with version 006 of 22 jan 2000. + I dared to ask for a product code with the FTSC commitee. + Removed the McMail.bug file from the distribution because + later releases (after 1.0) don't have problems anymore with + EMSI handshake. + Added nodelist capability flag IFT for future extension. + Added forgotten nodelist capability flag Z19. + Changed the analogue modems priority. + + lib: + When there was more then 6 Gig diskspace free, several programs + complained about negative diskspace available. + The logger now registers the /dev/pts/n devices correct. + Changed the logger for the new debug way of logging. + The logger is now protected for stringlength overflow. + + mbfido: + When exporting echomail all system aka's in the same zone are + now added to the SEEN-BY lines. + Experimentail newsgroup postings from local posted echomail + and received echomail. + Now closes active SMTP and NNTP servers only once if they have + been used instead of opening and closing for each message. + The filemover now creates destination directories if they don't + exist. + Added patches from Redy Rodriguez of 2:283/613.6: + . Added %RESCAN and %MSGS to the Areamgr. + . It also fixes two bugs in %QUERY: it incorrectly listed the + linked areas (I have added the great totals at the end of + answers to %QUERY and %LIST); and it also corrects its not + recognizing the area tag if you ask for it in lower case + letters (should always be in upper case). + . The AREA: kludge in echomail is now only tested if it is the + first line of the message. + . Added the message area autocreate function. See the manual + for details how to set it up. + mbfido now creates MBSE-FIDO ^aPID and ^aTID kludges. + Crashmail to points will be sent to their boss node. + Sending email now uses the mkrfcmsg function. + Incoming .pkt files not ending with a zero word are now + processed as if they were ok. The will not end up in the bad + directory anymore. + In magic unpackfile for test there is now an calloc for the + cwd buffer to see if that removes a NULL pointer free'd error. + + SETUP.sh + Added extra check for Slackware systems. Since 7.0 there is + an extra check needed to prevent detecting a Mandrake system. + Corrected a minor typo for Debian startup script. + + mbsetup: + The PickAka function loaded the global setup again when + editing the global setup so you did loose all recent changes. + Added a menu entry in menu 1.13 to set the size of the news + articles dupes database. + In screen 9.2 changed the order of fields 19, 20, 21 and 22 + because item 8. got partly overwritten by linewrapping. + + mbsed: + Corrected the data given for disk statistics for large disks. + The log function now prints all characters to the logfile. + + mbsebbs: + New users have now default the fullscreen message editor. + Added patches from Redy Rodriguez of 2:283/613.6: + . Changed language prompts 136...141 and added 471. Changed + the timestatistics output in funcs4.c for the changed + language prompts. It is now full international. + mbsebbs now creates MBSE-BBS ^aPID kludges. + It is now possible to reply crash to points by testing the + status of the bossnode. Also crash posting to points is + now possible. + Changed some debugging code of the fullscreen editor. + Message reading on Sparc systems works again. + The offline reader functions Tag areas, Untag areas and View + tags will now display the more/y/= prompt when the listings are + longer then the screenlength. Patches by Redy. + When posting a news article the To: field is automatic filled + with "All". + Postings to email and newsgroups now add some RFC headers for + mbfido to process. The style of GoldED is used. + + mbcico: + mbcico now creates MBSE-CICO ^aPID kludges. + The binkp transmitter now sends a zero length dataframe after + the transmitted file to all mailers except mbcico. + Removed a small bug in EMSI handshake routine. + Revised modem7 timeouts. Corrected checksum error for first + time receive of filename. + Did final testing for FTS-0001 sessions, a lot of bugs are + repaired. Note that most of them may be present in ifcico. + In a FTS-0001 session wazoo filerequests are also honored. + Sometimes received wazoo requests were renamed to temp + filenames and not responded to. + Corrected the helpscreen for the TCP/IP modes. + Improved the random dial delay time generation. + + mbmon: + The logger now registers the /dev/pts/n devices correct. + + mbchat: + Patches for new device pty names by Redy Rodriguez. + + fbutil: + New utility written and maintained by Johannes Lundberg, + 2:206/149@fidonet, . + + run_inout: + Changed this script to check for the inbound/bad directory, + if it doesn't exist it is created. + Removed all old news/email gateway stuff. + The goldnode compiler is called if it is in $MBSE_ROOT/bin. + + diff --git a/ChangeLog_2001 b/ChangeLog_2001 new file mode 100644 index 00000000..83d97317 --- /dev/null +++ b/ChangeLog_2001 @@ -0,0 +1,933 @@ +$Id: ChangeLog_2001,v 1.1 2002/06/01 13:55:40 mbroek Exp $ + + MBSEBBS History in 2001. + + +v0.33.16 07-Jan-2001 + + upgrade: + Edit the crontab to comment out the lines with run_inout, + mailer and mbstat check. + Compile the sources. + Stop the bbs, kill mbsed. + Install the new binaries. + Start the bbs as root with the new init script. It will be + in some init.d subdirectory depending on your distribution. + If you can't find it, reboot. + If you want to start using the newsgate, run mbfido news -learn + the first time to learn which articles there are. + Edit menu item 1.14.3 and check that it's empty if you don't + use it. + + CRON.sh: + Removed the lines that ware replaced by the mbtask program. + + SETUP.sh + Changed binkd into binkp because binkp is the official protocol + name. + Corrected a problem installing on a system without shadow + passwords. + Removed the part where the init scripts are installed. They + are now in a new script in the script directory. + + clcomm.a: + New function Syslogp, to log unformatted strings, the normal + formatted string logfunction did hang sometimes when logging + strings containing the % character. + Improved some error messages in the NNTP and SMTP connections. + + common.a: + Protected uniq_list and sort_list against NULL pointers. + Handles the error strings now if there is a $ at the start + of an logstring. This was only in the daemon but that didn't + give the right errorstrings. Nobody noticed this error has + been here from the beginning. + Protected the chkftnmsgid function from NULL input. + + libdbase.a: + Dupe checking databases are now loaded in memory when needed + and written to disk only once when ready. + + general: + Two new global switches, don't regate and allow control + messages. + Changed the maptab cp437__iso-8859-1 to translate 8bits dos + graphics to 7bits characters to make all fancy dos like + textboxes more readable on Unix systems. + New setup parameters for UUCP newsfeeds. + Added support for the PPC cpu. + + mbtask: + New daemon. Takes over the functions of the run_inout and + mailer scripts. This program launches every program needed + to run the bbs. It will also check Zone Mail Hour. + + mbsed: + Corrected a spelling error in the program header. + Made the userlog full transparant. + Fixed a memory leak in the userlog function. + Changed file locking of mbsed status files to use fcntl() + instead of placing lockfiles. + + mbfido: + Protected the rfcmsgid function against NULL input. + Build some protection against too long lines in ftn messages + that were gated from rfc and regated to news. + Removed a lot of #ifdef statements for gating behaviour and + made a lot of code permamenent. + Original code for #ifdef ALLOW_CONTROL and DONT_REGATE is now + under control of configuration settings. + Forwarded files had an old copyright message in the tic files. + When sending messages to the SNMP or NNTP servers a line with + only a dot in it will be sent as a space and a dot to prevent + that the server thinks it's the end of the message. + When sending or forwarding messages to a destination with a + routevia address, the arcmail will be packed with the flavor + of the new destination node. + Magic execute uses the exec call now instead of the system + call, the programs to execute must now be in MBSE_ROOT/bin or + it will fail. + If a MSGID is missing the dupecheck includes the message text + in the dupecheck. (Redy). + Local posted echomail gated to news has now the right From: + address format and the right UTC time. + Imported news messages had an AREA: line in the message text. + Gating news to echomail doesn't crash anymore. Fixed several + bugs to make this finally work. + During gating news to echomail the mbmon program now displays + what is going on. + Added usleep code during news scanning. + The program is now installed setuid mbse and setgid bbs. This + allows it to be called by other users as mbse. + New commandline, uucp. This allows mbfido to process incoming + uucp newsbatches. Call it from uucp by: + cat newsbatch | /opt/mbse/bin/mbfido uucp -quiet or + cat newsbatch | /opt/mbse/bin/mbnews + It will handle compressed and uncompressed newsbatches. + If a scanned netmail should be send via your own UUCP gate, the + message will be handled further by the ExportEmail function. + All other UUCP destinations will be send via the remote UUCP + systems. + News articles that need to be send via NNTP are now first stored + in a temporary file. At the end of the mbfido run it will try + to post these articles. If it fails (newsserver down), the temp + file stays for a later try. + Added newsserver options for submitting articles via rnews and + to an UUCP remote host. + Added alias database again that was in the original ifmail. + Made a universal email post function. + Removed sourcefiles addos.*, they were not used. + If in configuration the root for the html pages is blank, then + no html pages will be created. + Netmail send to "ping" are bounced back to the sender if your + system is the final destination. If such a netmail is passing + thrue, the receiver is notified (trace). All ^aVia lines are + added to the replies. Systems running MBSE 0.33.16 and up may + now add the PING flag to the nodelist. + + mbmail: + If there is no Organization header, the BBS default origin + line will be used. + Removed a lot of #ifdef statements for gating behaviour and + made a lot of code permamenent. + Original code for #ifdef ALLOW_CONTROL and DONT_REGATE is + now under control of configuration settings. + The packet routing is now determined using the mail tracker. + The point of splitting large messages is now set at the point + from the setup instead of hardcoded at 12 Kbytes. + The program is now installed setuid mbse and setgid bbs so that + braindead MTA's can still deliver mail to the Fidonet. + Mail for users at your own bbs is now imported into the netmail + board. + Added REPLYTO: REPLYADDR: and MSGID: kludges if these where + not yet present in the message. + Added alias database again that was in the original ifmail. + + mbsetup: + In menu 1.13 added allow control and don't regate setup. + In all menus the default prompt selection is now "-" instead + of "0", so just pressing enter will leave from a menu. + When editing a new message area the area is automatic made + active when you assign a group to the area. + Most databases now create default records the first time. + The sitedoc pages for the tty lines were to big for each + printed page. + Splitted menu 1.13 in a Fidonet and Internet part, added setup + parameters for UUCP newsfeeds. + In the services setup the UUCP/Email entry is now added for + first time installations. + + mbmon: + In all menus the default prompt selection is now "-" instead + of "0", so just pressing enter will leave from a menu. + + mbout: + Fixed the helpscreen. + + mbstat: + Removed the check command, this is now done by the mbtask + daemon. + + mbcico: + Doesn't use tmpnam anymore during execute magic request. + The openfile function doesn't use tempnam anymore if a filename + is created after 62 name bumps. + When searching for a matching aka and your first aka is + disabled the first active aka is used as default. + The closefile function doesn't use the tempnam function anymore. + + mbsebbs: + When posting news articles when not permament connected to the + internet, the From address will be Fido style. + Messages for offline packets are now packed using the + following tests: + - If area is netmail then only personal messages are + included (unchanged). + - If area is not netmail, and msg-kinds are private then + only personal messages are included. + - If area is not netmail, and msg-kinds are both (pvt/pub) + then personal messages and messages without pvt flag are + included. + - Otherwhise all messages are included in the packet. + Removed debug messages for the POP3 protocol. + + mbpasswd: + Fixed a compile problem on systems without shadow passwords. + Thanks to Mario Mure. + Corrected a missing library in salt.c + Corrected a missing conditional header file in encrypt.c + + mbmsg: + Wrote wrong CHRS kludge in the post function. + + mbfile: + Warns about empty file areas during kill files. + + +v0.33.17 21-May-2001 + + upgrade: + Compile the sources. + Stop the bbs using the init script mbsed as root: + Slackware 7.0 and older: /opt/mbse/etc/rc.shutdown + Slackware 7.1 and newer: /etc/rc.d/init.d/mbsed stop + RedHat and Mandrake: /etc/rc.d/init.d/mbsed stop + SuSE: /sbin/init.d/mbsed stop + Debian: /etc/init.d/mbsebbs stop + Install the new programs. + Start the bbs using the examples above and use the word start. + Use mbsetup menu 1.18 to change the Zone Mail Hour if you are + not in Fidonet zone 2. + + general: + The daemon mbsed is now obsolete, all these functions are now + in the mbtask daemon. For client/server communications Unix + Datagram sockets are used instead of TCP stream sockets. + Italian language added, translated by nervous@nervous.it + Spanish language added, translated by Redy Rodriguez. + JAM messagebase locking is now according to the JAM specs. + + docs: + Added fsc-0088, fts-4001 and a page to describe the use of a + UPS with MBSE BBS. + Updated documentation to show all changes. + Added in file area setup and message area setup the description + of the global commands. + + SETUP.sh: + Removed installing mbse as port in /etc/services + + common.a: + The diskfree check now ignores a mounted filesystem at /boot + because that filesystem is usually small and not needed by + mbse. + The diskfree check should support reiserfs now (not tested). + Code and logging cleanup in packet.c + + dbase.a: + Removed debug logging from the dupes databases. + + mbinet.a: + When an NNRP server asked for authentication after the first + command instead of after connect, the user authentication + wasn't started. + + mbsed: + Obsolete and removed. + + mbtask: + Does all things mbsed used to do, it uses Unix Datagram sockets + to communicate with the clients. + If IP addresses to test are entered in the setup it will check + if the internet connection is available with ICMP ping. + Added Internet connection status, system running status and + system load average to the GSTA command for mbmon. + Create's the file ~/etc/config.data if it doesn't exist and + fills it with default parameters. + Note: the internet connection status is for future use. + + mbfido: + The pktdate logresult is now only displayed if there was + something wrong. + The Checkdupe fallback logmessage is removed. + Corrected a small bug in the news to echomail gate to get the + correct replyto and replyaddr kludges in the messages. + Changed the tosspkt messages read functions back to the way it + was so the namefield may be exactly 36 characters long excluding + the null terminator. + The PING function didn't work if the message came from a node + not in the setup. + The PING reply now has a Re: prepended. + The scannews function now acts better on nntp error conditions. + Local posted echomail dropped the subject when it was gated to + news. + If imported netmail doesn't have a FMPT kludge and there is + pointinfo in the MSGID line, the pointinfo is taken from the + MSGID line. + Improved the TRACE message of the PING function to make it + more clear that it is a TRACE message. + The PING reply now uses the aka from address that was original + the destination address instead of the matched aka in the + reply message. + Added a hack to try to process .tic files that are not lowercase + filenames. + Added support for a system alias file to convert fidonet + addresses to RFC addresses. + In the mbnews function the tests for the headers Newsgroups: + and Message-ID: are now case insensitive. + File attaches with the leave case option set did not get the + TFS or KFS flags set in the attachement. + + mbdiff: + Removed some debugging logmessages. + + mbfile: + Removed some unnecessary logmessages. + + mbmon: + When viewing the bbs lastcaller list the clock wasn't updated. + The commandline option doesn't work anymore because we + now use Unix Datagram sockets to communicate with the server, + so we must be on the same system. + Added Internet status, running status and system load average + to the Server Statistics screen. + Minor adjustments to the screen layout of the Filesystem Usage + screen. + + mbindex: + Sends the correct IsDoing information to mbtask during sort and + write. + + mbsetup: + Added setup screen for the task manager. + Some menus didn't have the default "-" character in the prompt. + The language setup now adds Italian and Spanish on new + installations. + In main system aka's shortened the domain names from 12 to 11 + characters length to prevent SIGSEGV in mbsetup. + Improved help messages when editing aka's. + Corrected chapter numbering in sitedoc. + Changed page layout sitedoc 8.1 + Removed initialisation of ~/etc/config.data, this is now in + mbtask. + In golded.inc AKAMATCHECHO is no YES. + In golded.inc writing the AKAMATCH aka's other then fidonet + didn't really match the aka's, the main aka was written instead. + + mball: + Removed two redundant log messages. + + mbmail: + The program wrote mbfido instead of mbmail in the logfile. + + mbsebbs: + During login with two names the second name now also checks + for empty responses from the user. + Removed some IEMSI debugging messages. + Removed the timeleft debug message. + Removed logmessage if no newfiles were found. + Removed rendunant log message abount start newfiles scan. + Removed logmessage if no newmail was found. + Removed debug email setarea message. + The list of languages to select is now divided in two columns. + The message to sysop function now doesn't quote and doesn't + write "Sysop wrote to ..." anymore. Thanks to Harald Wuensch. + The program now uses umask(007) instead of umask(000) + In the displayfile function the ^B syntax (show text above + sec. level) is now: ^B^B^B without + the < and > characters. Thanks to Harald Wuensch. + Removed (press enter to Quit) from language prompt 379 since + there is no default choice. + Adjusted a lot of strings for filenames and paths to PATH_MAX + in stead of 80 characters length. + Moved the Nopper call in the fullscreen editor to a place were + it always should work. + + mbcico: + The session debug logmessages are set to the special loglevel. + Implemented EMSI-II, FSC-0088. + When calling a TCP/IP node with hostname in nodelist system + name and a valid phonenumber, and if the hostname could not + be resolved, mbcico would dialout and try to establish a + TCP/IP session over the modem connection. Now the TCP/IP + flags are cleared and mbcico will fallback to valid old style + phone sessions. + In binkp added the M_NUL PHN and M_NUL OPM to log if they are + received from the remote. We also send these flags. + In binkp we now always send and empty dataframe after a file + is sent, most binkp implementations need this to detect EOF. + We don't log received empty frames anymore, we just drop them. + + mbpasswd: + Added check that username and password may not be longer then + 16 characters. + Fixed the error message on some systems about USERGROUPS_ENAB. + + mbuseradd: + Error messages now go to stderr. + Increased stringslength of some internal variables to PATH_MAX. + Check all arguments that they are no longer then 80 characters. + The user is now the owner of his homedir. In this homedir a + directory Maildir with subdirs cur, new and tmp are created, + also owned by the user. Some MTA's need this (Qmail). + Doesn't create the .hushlogin file anymore, not needed. + + mbmsg: + Now runs umask(007) + + mbuser: + If users at the end of the userbase are deleted and the database + should be truncated, these users were not removed from the Unix + system and their homedirectories weren't removed also. + Added a check to see if the sysop defined in the main config + also exists in the user database because these two must match. + + mbstat: + Added the semafore command to set internal mbtask semafore's. + + script/installinit: + Corrected a bug for Slackware 7.0.0 were the wrong initscripts + were installed. + + examples: + Replaced the internet menu and txtfiles with versions that work + with the current menu structure. + + +v0.33.18 27-Jul-2001 + + General: + The development team now has five members and the sources are + on sourceforge's cvs server. + Changed the name to MBSE BBS for Unix instead of Linux. + This version is ported but not well tested to FreeBSD. + + Upgrade: + In your Mail Transport Agent (if you use it) replace the line + "mbmail -r (recipients)" to mbmail "(recipients)". + In postfix this is in the master.cf file. + With mbsetup menu 1.3.8 fill in the path to the *.msg path. + + MBSE.FAQ: + New, maintained by P.E. Kimble aka King Kimerud + + lang: + Added Galego language by Redy Rodriguez. + Corrected Spanish language. + + SETUP.sh: + Doesn't create .huslogin anymore for user bbs. + Script does now work on FreeBSD but needs bash. + + common.a: + Corrected some defines in parsedate.c to include/exclude the + right code. + Changed the rawio to termios style instead of termio. + Added ufs filesystem as normal filesystem to the diskfree + function. + + msg.a: + When locking the JAM messagebase failed due to a lock error + nothing was logged and the error was not flagged. + + mbftpd: + Removed the subdirectory for this not finished program. It may + or may not return later. + + mbfido: + Filefind replies had a wrong ^aREPLY kludge. + Rewrote a lot of code so that similar functions are only once + present. This will make bughunting and maintaining much easier. + Scanned netmail from point addresses created with GoldED are + now always checked for missing FMPT, TOPT and INTL kludges and + they are inserted when missing. + The checkdupe switch also work in uucp mode (mbnews). + The code for mbmail is now merged into mbfido. A symlink from + mbmail to mbfido is created to let mbfido run in mail mode. + The syntax to call mbmail is changed. + Implemented processing ^aFLAGS for received netmail (FSC-0053). + + mbmail: + Obsolete, the functions are now in mbfido. + + mbtask: + Removed all references to the Memwatch debugger, mbtask is oke + but the debugger fills up the harddisk (very fast). + Does now respond again to external semafore's mailout, mailin + and scanout in the semafore directory. + Removes stale socket file if found. + Runs mbsetup init if config.data is created on new systems. + Fixed a SIGBUS fault for Sparc systems + + mbpasswd: + Added CLOSE_SESSIONS and ENV_ROOTPATH to getdef to prevent new + user error messages on some distributions. + Ported to work on FreeBSD. + + mbindex: + Patched by Ken Bowley to prevent a crash when the 300 baud + field is the last item on the nodelist line. + + mbmon: + Changed the rawio to termios style instead of termio. + Shows the OS name in the info screen. + + mbsetup: + Shows the OS name in the info screen. + Creates default tty records with tty names for the right + OS (I hope). + Fixed a bug in the menu editor, deleted menus were not really + deleted. + Added setup items for the menu Display colors. + Added a no suid switch to the menu for doors. + Added setup for *.msg directory in menu 1.3. + When changing the number of newfiles groups, the newfiles + reports database is converted on the fly. + All path variables now have a length of PATH_MAX. + When mbsetup is started, all databases not present are created + and when needed filled with default records. + There is now one possible commandline parameter: init. This + should be used only once (but doesn't hurt if run more then + once) on a new installation. + A check is build in that mbsetup is started by user mbse. + Fixed segfault error during exit of mbsetup when writing the + golded.inc file when the bbs is more or less unconfigured. + The file golded.inc is now only rewritten if changes are made + to the main configuration, fidonet data or message areas. + Added default archiver record for the Russian ARJ archiver. + + mbcico: + Renamed sendfile function in zmsend.c to sendzfile to prevent a + conflict with an existing library call on FreeBSD. + Removed some debug logmessages. + The filerquest response message doesn't use the tmpnam function + anymore, this was the last one of the unsafe tmpnam calls. + + mball: + Removed some compiler warnings on some systems. + + mbsebbs: + Removed some compiler warnings on some systems. + Added menu Display lines. + Added menu item 21, display text only. + When a user has no download files limit and no download Kbytes + limit he may download unlimited. + When a user has no timelimit set in the limits, he will get + a 24 hours session limit. + The written door.sys file now has EOF character at the end. + The written door.sys file now has a : after the comport. + Executing doors in nosuid mode (as real user) is now possible. + This can be switched on using mbsetup. Info will be in FAQ. + Fixed security problem in Unix username and password entry. + Now stoped nicely if started without controling tty. + Many bugs fixed in the full screen editor. + Last line of message is no longer deleted when saving message. + Segfault problem with deleting characters fixed. + Improved word wrapping. (still needs work) + Reduced amount of debug logging messages in editor. + + mbuseradd: + Ported to work on FreeBSD. + + mbpasswd: + Ported to work on FreeBSD. + + mbfile: + All path string variables are now of length PATH_MAX. + Added list file areas. + + fbutil: + Removed list file areas. + + htmldoc: + Upgraded the FTSC documents to the current state. + + +v0.33.19 26-Oct-2001 + + upgrade: + Announce any new files you might have. If you run mbtoberep + it should display no data anymore. + Change the file /opt/mbse/etc/issue like the example in the + subdirectory mbtask. + Change the shell for user "bbs" to /opt/mbse/bin/mbnewusr + The make install fixes several permissions that are wrong for + the new style (not setuid) of mbsebbs. + Remove /opt/mbse/etc/maint to let it replace with a new + version, or change it by hand. + On RedHat, Mandrake or e-smith systems remove the existing + start and stop commands with the runlevel editor, they will + be installed with other values when the system is installed. + If you forget this then mbsebbs will start and stop twice. + After compilation and installation run "mbfile check" to + update all file entries in the files database. This give a lot + of output in the logfile, don't worry about it. + In mbsetup 18 (task manager) set the fields 18, 19 and 20 to + the right values of your system. Also consider the setting + of field 13, set it to Yes if you cannot have a internet + connection at the same time when normal dial to fidonet is + needed. All other users, (more modems, cable/ADSL etc) set + this to No. + Fill in the right IP addresses in fields 11 and 12 of your + ISP's nameservers. If you don't have internet, fill these + with 192.168.1.1 and 192.168.1.2 as dummy addresses. + Change the startup program in /etc/inetd.conf for telnet if + you previously used mbsebbs to mblogin. + Change the default login program in mgetty's login.config to + * - - /opt/mbse/bin/mblogin @ + + general: + Made the Makefile system more simple. The bbs program now + doesn't run setuid anymore! This makes the system more secure. + A new program, mblogin, is written to allow logins with + Fidonet style names from mgetty and telnetd. This is a login + replacement for bbs use only. Normal shell users can't login, + not even root! + On FreeBSD the installed files are not removed anymore from + the source tree. + Added German language file made by Harald Wuensch. + The mbtask daemon now handles the calling of Fidonet nodes. + The sourcetree has now a new subdirectory called unix. Here + are all the system specific programs such as mbpasswd, + mblogin and mbuseradd. + Started NetBSD port, is in testing fase. + Added support for xinetd. + Fixed filemodes for some directories and data files. + + SETUP.sh: + Better grep to check for existing usernames like bbs, mbse. + Ported to NetBSD. + Added support for xinetd configuration. + Changed distribution test for Mandrake. + Changed to recognize the e-smith server based on RedHat. + If system runs xinetd instead of inetd, the configuration for + xinetd is updated with info for mbsebbs. + + installinit.sh: + Changed to recognize the e-smith server based on RedHat. + On RedHat, Mandrake and e-smith systems the symlinks to start + and stop the bbs are now added. + Reorganized the init scripts. + + libcommon.a: + When adding seenby entries, the zone number is copied from the + previous adress just like with the net numbers. This is for + old style tic files, they were not full 3d. + Fixes for Sparc systems. + The nodelist information now also holds the Txx flags. + The mkdirs function now needs a mode parameter for directory + creation. + The filesystem space check is now reliable on FreeBSD and + NetBSD. + + lang: + Changed language prompts 6, 71, 429. + Added language prompts 472 and 473 for FS editor. + Added language prompts 474, 475 and 476 for address entry. + Added language prompts 477 and 478 for post with user alias. + Deleted language prompts 387, 388, 389, 390 + + examples: + Changed menu setup.mnu and textfiles setup.* to show the new + setup entries for the users. + + mbsetup: + Changed usereditor, new layout, added new settings and + changed password reset function. The system password is + now also updated. + Added setup item for menus 317 and 318. + Changed the order of menu 1, global settings. The screens are + now in a more logical order for a first system setup. + Most datafiles are now saved mode 0640 exept the files that + need to be rewritten by users, they have mode 0660. + The filemodes are always checked and corrected during startup. + In the file database editor the default choice was 0 in stead + of -. + When a file area is made unavailable in menu 8.4, first the + files in that area area checked. If there are none, the area + is completly removed, including paths, indexes and database. + When an new area is made available, the database is created. + The AREADEF lines in golded.inc now contain the aka to use + instead of a dot. + Fixes for Sparc systems. + Now logs in the normal system logfile. + On new systems it will now also create one filearea, three + default mail areas, a newfilereport and the groups belonging + to these areas. Also 10 oneliners are installed. + Changed help for nodes billing flag. + Changed users password length to 14 characters instead of 12. + When you make a tty line available, some settings are + automatic set to reasonable defaults. + The color editor now has a rangecheck. + Rewrote calling of the color editor for Sparc systems. + Added setup items in global and message areas to limit the + fetching of newsgroups headers. + The edit field now shows the contents correctly if the field + contains the % character. + In several menus after leaving a edit record records were + displayed from start again, now shows last screen. + When editing a node's connected file/mail groups it can now + handle more then 40 groups without messing up the screen. + Fixed area selection in filedatabase editor. + Protected help string display for boolean edit against buffer + overflow. + Menu 5.1.14, helpstring was too long, causing a buffer + overflow without the previous protection. + + mbsebbs: + Added menu 317, change FS editor shortcut keys to (Emacs/ + Wordstar) style. This has no effect on the editor for now. + Added menu 318, change users address. + Added control-U 4, ON/OFF for FS edit Emacs shortcut keys. + Now updates the lastcaller information when a call is finished + and now also sets all the action bits what the user has been + doing. Also time online is correct now. + Added control-U 5, 6, 7, display users address lines 1, 2 + and 3. + If a user doesn't have a .signature file in his homedir, a + simple one will be created. + If a user saves a new message at the bbs, the message will be + signed using the .signature file. + Patches from Bobby Cabral: + - Fixed display file with more that stopped after every line. + - Added display file "mainlogo" before the "welcome" file. + - Added display files "welcome2..9" after "welcome1" file. + Posting message with users alias is now possible. + If in menu entries "Display prompt" the fore and background + colors are set, the prompt is displayed with these colors. + If not, the prompt defaults to white on black. + Does now run as the users uid, not suid anymore. You are not + able to login with Fidonet style name anymore, the mblogin + program does this. Removed IEMSI support, this has no use + anymore. New users need to register with the mbnewuser + program, mbsebbs is only for registered users. This should + fix all kinds of setuid and security problems with previous + versions. + In the door.sys files is now a nodenumber written. This is + actually the tty record number. + QuickScan messages in netmail areas now only shows personal + messages. + The whoson list now uses mbtask to get the information. + The users exitinfo file is now stored in his homedirectory + with mode 0600. + A lot of code rewrites to make it more modular. + The bbs datafiles that users create now have mode 0660. + The file taglists now work internally with long and short + filenames. + The file listings are displayed with the short filenames. + Download files are sent with short filenames. + File search is done on long and short filenames. + Uploaded files are accepted with long filenames, the short + name is created when the upload is processed. + The virus scan after files upload tried also to use scanners + that were not available. + The upload virus file scan now also scans files that are not + known archives. Should catch macro viri and worms. + The file CRC is now set when importing an uploaded file. + Fixed quote initials of the original user containing a space + character if there was a dot followed by a space in the users + name. + If Ask Date of Birth is not set in the configuration the user + can't change his date of birth and his age is 0 years. You + should not disable this if you restrict access to some file + areas if you want to test the users age. Also the age in the + users record is invalid. + Fixes for Sparc systems. + System calls for archivers and virus scanners are replaced + with execute. + During startup the username is tried from the environment + variables LOGNAME and USER. + Added some automatic file permission corrections. + + mbnewusr: + New program, run by user bbs. This is only to register a new + bbs user. Should be started by the bbs account. + Ask Date of Birth now only is asked if set in configuration. + Fixes for Sparc systems. + + mbpasswd: + Added more checks to see if it's legal invoked. + Password change on FreeBSD finally works. + Moved to new sourcetree. + Ported to NetBSD. + + mblogin: + New program. Replaces standard login, allows Fidonet style + usernames. Has it's own login.defs file. + + mbcico: + Undefined IEMSI support since mbsebbs doesn't support it + anymore. + Filerequest responses are now created with long filenames. + When sending files, if the remote has the FNC link flag, the + filename is mangled to DOS 8.3 format when transmitted. + File request response messages now display the long and + short filename in the reply. + Filerequest response messages now have a random quote added. + The binkp driver now sends 8.3 mangled filenames if that + option is set for the remote node in the setup. + The hydra driver now sends 8.3 mangled filenames and long + filenames as specified in the specs. + Corrected the location of the modem lockfile on FreeBSD. + Fixes for Sparc systems. + When a session fails, the node status retry time is current + time + random dial delay time. Needed for mbtask. + + mbout: + Fixes for Linux Sparc systems. + The node query now displays the system open times (Txx) flags. + The node query now also displays the CM,MO flags etc. + + mbtask: + Changed to handle the External Doors flag in the lastcaller + information. + On new systems, ~/etc/config.data and ~/etc/task.data are + created with mode 0640. + On new systems, the DOS path isn't set anymore by default, + most people don't need it. + Starting utilities is now more relaxed using a 3 seconds + pause timer. Fixed some potential Sparc problems. + On new systems, all paths for MBSE are now created in the + /opt/mbse root. + When scanning outbound, flags are set if flo or mail pkt files + are present. + When the internet connection status changes, the outbound is + rescanned. + Implemented Txx nodelist flags, FSC-0062. + Added code to see which nodes could be called depending on + outbound status, nodelist flags etc. Experimental. + Added code to do outbound calling, experimental. Calling + systems in parallel is now possible. + Creates the semafore do_inet if there is an internet node to + call even if there's no internet connection. Removes this + semafore if there are no internet nodes to call. This can be + used by ppp scripts to see if there is work and when there is + no more work to do. Not important for permament connected + systems. + Made the FreeBSD and NetBSD disk status calls reliable now + that I know how to really get the mounted filesystems. + The system load value is implemented on FreeBSD and NetBSD. + + mbmon: + Changed the lastcaller screen to display the External Door + information. + When lastcaller info is scrolling, the lines are first proper + erased. + Fixes for Sparc systems. + Added support for display do_inet semafore in menu 2. + + mbmsg: + Corrected header in logfile for pack function. + Fixes for Sparc systems. + + import: + Removed users import, could not work anymore. + + mbfido: + When running in mbmail mode, it will try to get the lock on + the program for 10 minutes before aborting and waits until + another mbfido program is ready. + Fixed the problem that the KillSent flag was set on processed + netmail. + Reset the KillSent and Hold flags when storing netmail in the + message base. + The tic file import function now sorts and tests on long file- + names, with the new mangle function an DOS 8.3 filename is + also stored in the file database. + For all files received in tic area, the crc of the tic area + name is stored in the filerecord. This is for the future + rescan option. + Implemented long filenames with hatch. Now uses ticfile key- + word Fullname for the long filename. + Fixes for Sparc systems. + File forwarding now really depends on the downlink billing + flag. + Now limits fetching of newsheaders according to area setting. + Added the Size parameter to the tic files, this appeared to + be missing since a while. + Fixes for Fido->internet gate for dropped characters during + linewrap. Experimental. + Added netmail bounce function. + Protected the postemail function from posting to local FTN + addresses, this will cause a mailloop for undeliverable mail. + These mails will be bounced back. + + mbfile: + During checks the file databases are reset to filemode 0660. + Implemented "mbfile adopt" function. + Started working on long filename support. The real name on + disk is the long filename, the database records also holds + an uppercase mangled 8.3 filename. In most cases this is just + the same name in upper and lowercase. Name mangling like Win$ + is performed on the long filenames. + Implemented "mbfile import" function, this imports complete + areas from files.bbs information. + Added "mbfile toberep" function, this gives an overview of the + toberep database. The program mbtoberep does this as well, but + that one gives a complete dump and is for developer use. + The "mbfile index" function now also writes files.bbs files, + the index.html files for http download and 00index files in + all available areas. The files.bbs files have download + counters included. + The mbfile check function now converts the short filenames + to DOS 8.3 filenames. (The first time this logs lots of + errors). + The mbfile list function now gives a listing of the contents + of a file area if the area number is given as argument. + Implemented "mbfile move" command. You can only move one file + at the same time. + Implemented "mbfile delete" and "mbfile undelete" commands. + The command mbfile check now removes obsolete file databases. + Fixes for Sparc systems. + Fixed index screens to prevent negative totals with large + filebases. + Added standard doctype header and commentline to the html + pages. + The mbfile check function deletes double filerecords in the + database. + + mball: + The index function is now obsolete, this is added to mbfile. + You may need to adjust your scripts that call "mball index". + Fixes for Sparc systems. + Fixed to prevent negative values with large filebases. + + mbaff: + Fixes for Sparc systems. + Fix for large filebases, could not run longer then 10 minutes. + + mbindex: + Fixes for Sparc systems. + + mbdiff: + Fixes for Sparc systems. + + mbfbgen: + Obsolete and removed from the distribution. The function is + now in mbfile. + + fbutil: + Removed from the distribution. Thanks to Johannes Lundberg, + 2:206/149@fidonet to let us use his program until mbfile could + take over. + diff --git a/ChangeLog_2002 b/ChangeLog_2002 new file mode 100644 index 00000000..8d42dde5 --- /dev/null +++ b/ChangeLog_2002 @@ -0,0 +1,973 @@ +$Id: ChangeLog_2002,v 1.1 2003/07/06 10:06:45 mbroek Exp $ + + MBSEBBS History in 2002. + + +v0.36.00 26-Dec-2002 - stable release + + update: + These are the total update instructions for the upgrade from + v0.33.21 until v0.36.00. Read and perform this upgrade with + great care, this one is quite complicated. + Make sure you don't have download files with case differences + in download directories like FileName.zip and FILENAME.ZIP. + With this upgrade files with such names will be deleted! + Rename them before you upgrade! + Make sure your outbound is empty, "mbout stat" should not show + anything in the outbounds. You may delete ~/bin/mbfido before + you do this so when you deliver all pending mail no new mail + will be tossed. New mail will stay in your inbound now. + Now backup your whole bbs and download areas! + Compile the new bbs programs, do not yet install them. + Shutdown the bbs with "mbstat close". Kill the mbtask daemon. + Depending on your distribution as root you can do + "/etc/rc.d/init.d/mbsed stop", the location may vary. + Delete ~/etc/lastcall.data + Delete ~/etc/archiver.data + Delete ~/etc/virscan.data + Because the macro template files are changed and you may have + personalized them, these files are not automatic upgraded. If + you want them to be upgraded delete all files in + ~/english/macro . + Now install all new binaries (su to root, make install). + Delete ~/bin/mbfido again (to prevent tossing mail). + Back as user mbse again, start mbtask by typing mbtask at the + commandline. Now you are ready to check and update the changes. + Start mbsetup, enter global configuration and exit and save. + This will set defaults for area-/filemgr logging and security. + The noderecords are updated with new security flags. + This will setup the new outbound queue path, default is + /opt/mbse/var/queue. + The filegroups, ticgroups, tic areas and message areas are + updated with default security flags. + In mbsetup enter Edit Fidonet Nodes. You might want to check + if all the session passwords are still ok. Also check all + nodes if the Pack mail flag is ok, this setting now also + affects echomail! + In nodes screen 1, enter item 2: "Outbox dir" to set a outbox + directory if you want that. This will propose a directory name, + change that if you like to for example to a system or sysop + name. Don't use spaces! + Check new settings in nodes setup, screen 6, items 9 and 10. + Item 9 does not work if the node uses BBBS and maybe others. + If the node uses Allfix or MBSE, 9 and 10 can be Yes. + Check TIC magic records (menu 10.4), all filenames tested are + now uppercase 8.3 names, adjust your filemasks. + In mbsetup enter the Edit Archiver Programs. The new values + should now be set. Do the same for Virus scanners. + This is all for mbsetup. + Run "mbfile check". This will create an error in the logfile + for each file! It will update the filenames on disk to have + both short and long filenames. Just ignore the errors but check + for real deleted files. + Now you are ready, install the binaries again so that mbfido + is present again and you can toss mail. Do this with + "mbstat set mailin", after a while all mail and files will be + tossed and you are back in bussines again. + Have fun. + + changes: + See all changes from development version 0.35.01 upto 0.33.07. + + + MBSEBBS History. + +v0.35.07 11-Dec-2002 - 26-Dec-2002 + + general: + On FreeBSD the lsz and lrz programs are found as alternate for + lz and sz. + + common.a: + For testing purposes of the ESLF (Extended St. Louis Format) + nodelist, debugging is added to show the information in the + ESLF lines. Only visible with utilities debug 's'. + + mbsebbs: + With menu 201 there is now a new optional data parameter N. + When used if a user selects a different message area, areas + with new unread mail are marked with a yellow star. + Also with menu 201 these is now options U+ and U-, which + takes the user to the next or previous Unread message area. + + mbfile: + The index command displays LFN names in the webpages again. + The real download still sends the 8.3 name. + + mbfido: + Better detection of zone information in netmails when netmail + was stored in a netmail packet of a different network and the + netmail misses a lot of kludges. Better logging of processed + netmails. + If a TIC file woth lowercase 8.3 filename is received the name + is forced to uppercase 8.3. + + mbcico: + Code cleanup in opentcp, better handling of given ports and + better logging. + + +v0.35.06 13-Nov-2002 - 11-Dec-2002 + + templates: + The html templates are changed by Joachim Kuwan and now they + are valid html files validated at http://validator.w3.org/ + This upgrade is not automatic because you might have personal + changes in the templates that I do not want to overwrite. + Another one changed is areamgr.status, that one had an error + and did display garbage for the routevia address. + They are in ~/mbsebbs-0.xx.xx/examples/templates.tar and should + go into ~/english/macro/ + Some other templates are changed because they had spelling + errors, you may want to replace all templates. + + general: + Added better support for 8.3 and long filenames by creating + symbolic links in the download directories. + + common.a: + Changed the LFN name mangle functions to prevent 8.3 name + collisions. Now the basepart is 4 characters followed by the + tilde char and then a 3 characters code calculated from the + 16 bits crc of the original filename. Original this was base 5 + followed by a tilde and 2 characters code calculated from the + checksum of the string modulo 1849. Both methods are different + then what MS does. + Added long extension to 3 char extensions for mpeg, smil, perl, + jpeg and tiff. + The unpack function doesn't complain anymore when it was + testing for the archive format on files smaller then 257 bytes. + + mbsebbs: + Several user input functions don't allow comma's anymore. + Uploaded files will now also have a symbolic link to then + long filename from the real 8.3 filename. + Filesearch on filename now uses regexp to find the files. + The caller id didn't show up when the info was available. + A user with only a limit on download files or download Kb could + not download at all. + + mbfido: + TIC file forwarding now uses a list of qualified systems to + forward to, and with this information builds more reliable + seen-by lines. + Imported tic files with a new banner file in the archive got + the wrong filetime in the files database. The mbfile check + command would detect and correct this. + TIC files added to the bbs will now also have a long filename + symbolic link. + With TIC file attaches, the filename attached is the 8.3 name. + TIC processing completly modified to make better LFN support, + internal everything works on the 8.3 filename. + When writing ticfiles for downlinks, the To line now depends + on the new nodes setting. + When writing ticfiles for downlinks, the format of the Seenby + lines now depends on the new nodes setting. + When adding unpacked mail for a directory node, the mail + packets had the wrong filename. + Changed some logging to debug with auto create areas. + Request messages sent to the uplinks are now logged in the + manager logfile. + Removed heavy debugging on some parts of RFC message + processing. + During toss the Nopper code is called to prevent timeout when + a very large packet is tossed that takes longer then 10 mins. + When more then 1024 dupes were tossed, mbfido crashed because + a temp file wasn't closed. + The echomail dupecheck doesn't check the seconds of the message + date anymore. This will catch some rescanned dupes that modify + the seconds of the original messages. + + mbcico: + With filetransfer errors, the attempts counter was not + increased. + + mbfile: + Finished complete support for 8.3 and long filenames. + The check function now creates symbolic links in the download + areas with the 8.3 filename to the long filename so that the + files seem to exist under both names. + The delete and move functions can now use 8.3 or long + filenames as argument. + The index function now creates web pages with the uppercase + 8.3 filename (including thumbnails) because webservers don't + allow downloads from symlinks and the LFN is a symlink. You + could allow your webserver to do this but this is a big + security hole. + + mbsetup: + In filedatabase editor, if a file is deleted the name is + displayed in light blue. + Added setup switches in nodes setup, files, to toggle sending + advanced seen-by lines and the To line in ticfiles. + + mbtask: + The outbound status didn't show the new error codes. + + +v0.35.05 19-Oct-2002 - 13-Nov-2002. + + general: + There is now a mberrors.h file that defines all errorcodes + returned by all programs. + + faq: + Changed the section about ftp feeds. + Added Q&A about failing internet polls. + + mbsebbs: + Email posted at the bbs was not signed with the signature. + Fixed the bug where the filearea number was lost. This was + caused when a user was logged off before the login procedure + was complete. + If user was displaying the whoson list and there was no + matching isdoing action then browsing will be displayed + instead of system error. + Sends Unix name instead of long name to mbtask. + During login the OS and CPU type is displayed. + + mbnewusr: + Sends Unix name instead of long name to mbtask. + During login the OS and CPU type is displayed. + + mbmon: + In screen 1, username field decreased ro 8 characters and the + doing field is increased to 26 characters. + + mbcico: + Fixed crash with incoming YooHoo session with bad password. + Still used the phone override fields for hostname override + with internet calls if there was something filled in. + For inbound sessions if the remote is listed in some nodelist, + mbtask is updated with the sysop name and location. + + mbout: + The stat command now also shows what is on hold for a node + with an directory outbound (ftp node). Status is always hold. + + mbmsg: + The summary counters in the logfile are increased to 6 digits. + + mbsetup: + When installing the default unarchivers (new installations) + the rar is used to unarchive instead of unrar when available, + rar is compiled static and prefered. + Added support for the nomarch unarchiver. Files are extracted + with the -U switch for nodelists. + Removed from Screen 1.13 the unused switches Res Future and + Repl ext. Fixed some help texts. + Added in screen 1.14 settings for Plus All, Notify, Passwd and + Pause. + Removed the default Virnet record from the fidonet setup. + In node setup the pack netmail switch is renamed and is now + for all mail. Default for new records is Yes. + Added length check when importing taglines. + Now writes also ~/etc/msg.txt for MsgEd after messagebase is + updated. + When a new echomail area was created with a default group + setting, then when the group was selected setup would create + the jam basepath itself instead of using the base from the + group. + New JAM areas will not have spaces anymore in the pathnames. + Spaces are replaced by underscores. + + mbfido: + With ticfile processing, the KeepDate setup setting now works. + The FileMgr requests now honor the setting of the switches + Plus All, Notify, Passwd, Message, Tic on/off and Pause. + The AreaMgr reuqests now honor the setting of the switches + Plus All, Notify, Passwd and Pause. + Echomail is now also packed or not according to the packmail + switch in mbsetup. + Statistics count for exported echomail now works. + Email posted in the email box in full domain mode was refused + by SMTP servers because of bad address formatting. + Addex extra check to prevent overflow of arcmail packets + extension. This is logged with a warning when this happens. + If filenames were exhausted and the last one (ending on z) is + truncated in the outbound (has been sent already) it is erased + before the archiver is called to reuse that filename again. + When mail/files were moved to the inbound from a directory + node, this was not processed in the same session. + Moved the ^aTID kludge to the top of the exported message + after the last kludge so people won't complain anymore. + With local hatched files, the aka of the tic area was not added + to the seenby list. + + mbtask: + Removed debug logging of "does" info. + + +v0.35.04 29-Sep-2002 - 19-Oct-2002. + + general: + Added mail and files security flags for nodes. + + clcomm.a: + Added Mgrlog function, logs default to manager.log. Does also + log to Syslog with level '+'. + + mbfido: + Area- and FileMgr requests are now also logged in manager.log + Auto created and removed areas are also logged in manager.log + Auto created area now get the link security from the group. + With message areas auto update it should now only delete + missing echomail areas. + File attaches to our own points were placed in the node's + outbound directory instead of the point outbound. + Files and echomail security flags implemented. + Echomail rescan will also work with newsgroups. + Removed some debug logging with files replace. + Fixed trashing news dupes file when mbfido was called multiple + times. Improved program locking. + Netmail received for a zone/net without netmail board will be + stored in the badmail area. + + mbsetup: + Added setup for the nodes record for security flags. + Added setup for the ticgroups default security flags. + Added setup for the mailgroups default security flags. + Added setup for the tic areas security flags. + Added setup for the message areas security flags. + Menu 14, edit files database had the wrong selection prompt. + Fixed backspace/delete key issue. + + mbmon: + Fixed backspace/delete key issue. + + mbindex: + Removed debug logging. + + +v0.35.03 06-Jul-2002 - 29-Sep-2002 + + general: + Now compiles and installs on HP-PARISC hardware, tested with + Debian 3.0 on a HP 712/80. + + common.a: + Added nodelist override to the nodelist lookup function. + Added protection against emty rfc headers with only a space. + Added test for HA archiver. + + mbinet.a: + If during a connect a newsserver refuses the connection then + don't close our side of the connection. This is a temporary + solution, we should disconnect with timeout instead. + + lang: + Corrected a spelling error in the Dutch language file. + + mbcico: + Changed IsDoing information. + Makes use of the node nodelist override settings. + Fixed a bug that mbcico refused to do internet calls when one + of the No IBN, No ITN or No IFC flags was set. + + mbout: + Makes use of the node nodelist override settings. + The file attach function now adds the file to the queue, by + setting the semafore mailin mbfido will place the file in the + real outbound. + + mbfido: + Rollover now only sets IsDoing when it really does a date + rollover. + When a new tic area was created the first file received for + that area was refused. + Fixed a few problems with local UUCP created netmails. + Added routing tables for special cases. Most systems don't + need this. + The route test command now works exactly as netmails do. + Implemented directory inbound tossing and outbound queueing. + Rewrote the outbound queue system, the queue now works for + files also. + Removed debug logline with extract of FILE_ID.DIZ. + When a file is imported with a name that is already present, + the existing filerecord is updated and not replaced. + There are people using M$ wordprocessors to create TIC files, + there is now better filtering to get that garbage out of the + received tic files. We will forward plain ascii of course. + Fixed the outbound queue to send to nodes not in the setup. + When mbfido stops with error 110 it doesn't remove any locks + because this error is only being used before that main lock is + made. + Changed the error codes during init until the main lock is + made, this must prevent destroying a another lock. + Added extra check to unlock directory function to check that + only the owned lock is removed. + + newuser: + Check for Unix accounts is now case sensitive. + Check existing usernames now also checks handles. + Check for existing Unix names now also includes the name ping + and services names. + Check for handle now also checks Unix names. + The setting for single usernames does work again. + + mbsebbs: + Check existing usernames now also checks handles. + When a user paged the sysop for a chat, after the timer was + expired, the bbs crashed. + Fixed a problem with extra spaces in UUCP replyto address. + Added test for HA archiver. + When changing a Handle, Unix names are checked as forbidden + names as well. + Improved import of FILE_ID.DIZ with file uploads. Only if + FILE_ID.DIZ is processed successfull the user will see that + this file has been used. + Corrected length for manual file description to prevent string + overflow. + Added missing space in message to user about file unpack. + + mbtask: + Changed logging of multiple logmessages that are equal. + Changed semafore debug logmessages. + Fixed log problem not always showing the Call flag. + Now forces callmode to None if the callflag was cleared. + The test to add a node to the calllist now also checks the + internal call flag. + Makes use of the node nodelist override settings. + Added default setting for outbound queue. + + mbsetup: + Enabled setting of nodelist override settings in menu 7.x.3 + After nodes setup edit the semafore scanout is set. + When a JAM messagebase path is changed in one of the message + area, filefind and newfiles records are automatic updated if + they were connected to that area. + Added setup for routing the table. + Corrected several page layouts for printing on A4 paper. + Added setup for nodes connected via directories (we are the + FTP server side). + Added setup setting for outbound queue in global setup. + Added support for default setup of the HA archiver. + Changed Rubout key to do the same as Backspace. (experimental) + + mbmon: + Changed Rubout key to do the same as Backspace. (experimental) + + script: + The bbsdoor.sh and rundoor.sh scripts are now only installed + if they were not installed before. + Added better support for different locations of the external + editor joe. + + examples: + With the aid of a little utility (endian) the right menus are + now installed on little or big endian machines. + + +v0.35.02 22-Jun-2002 - 06-Jul-2002 + + general: + Added checks for GoldED in external program checks. + Added new empty path /opt/mbse/var/boxes. + Implemented nodes private outbound boxes. + Revised the dependencies for all sourcefiles. + + common.a: + Added debug nodelist IFT flag for logging. + Added archive detection for tar, gzip and compress. + + mbsetup: + Changed node records layout into 8 screens to be able to add + more settings. New settings not in use yet are disabled. + Added settings for node contact information. This is private + for mbsetup use only. + Implemented nodes special outbound box setup. When you enter + that item for the first time, it fills this with a suggested + path. + Changed description and filetype for default tar gzipped files + in archiver setup. + Added default records for bzip2 and uncompressed tar files. + + mbcico: + Implemented nodes special outbound boxes. + Corrected a problem with getting modem aftercall info from ISDN + modems. + + mbout: + Implemented nodes special outbound boxes. + + mbfido: + In newsmode when a mesage is received with an illegal formated + date headerline, the date is replaced with the current date + and time. Possible cause: SunMail 1.0 + When reading taglists if there was no description after the + tag, mbfido would crash. + Filefind netmail replies now set the private flag. + Removed debugging messages displaying the incoming tic files. + The mbfido test command now needs a extra parameter, the final + destination to test. It doesn't use the internal fixed table + anymore. + + mbindex: + Fixed a crash when a pointlist contained Point,5,reservered, + and nothing more. + Added nopper code to prevent timeout on slow systems with + large pointlists to compile. + + mbsebbs: + The email address in new created .signature files is only + added if global Give Email is true and in the userecord the + email is also enabled. + The whoson list now supports the /H and /U optional data to + display handles or unix names. + The send online message now supports the /H and /U optional + data to use handles or unix names. + The display userlist function now supports the /H and /U + optional data to use handles or unix names. + The display lastcaller list now also supports the /U optional + data to display Unix names. + Code cleanup in offline reader. + Messages posted using BlueWave format now correct the timezone + difference. + Messages posted using BlueWave now show the tearline of the + OLR client if this is present. + When messages are uploaded with BlueWave or QWK the netmail.jam + or echomail.jam is updated. + With QWK messages upload, if a tearline is already present, it + will not be added again. + + mbmsg: + The isdoing messages now has the area number included. + + mbtask: + When first run the goldnode command is only filled in if it + exists in the mbtask configuration. + Implemented nodes special outbound boxes. + Added debug info for isdoing messages. + + +v0.35.01 05-Jun-2002 - 22-Jun-2002 + + general: + Added structures for netmail routing file. + Expanded nodes structures for FTP and Directory transfers. + Splitted nodes session/mail password in mail and session + password. + Added more external program checks to get the right paths of + archivers, virus scanners etc for default settings in the + setup. + + mbtask: + Removed some debug logging and corrected some spelling. + The ping test now also works if operations are suspended. + Rewrote the ping state machine. + + mbcico: + Now uses the new session password field for session handshake. + The binkp version string now includes the OS and CPU type. + If a transmitted file via binkp is skipped by the remote it + will stay in the queue for the next session. + The binkp protocol now supports the CRC option proposed by + Tobias Ernst. This unofficial extension is also supported by + Irex and patched BinkP versions. + Better error handling for error conditions during a binkp + session. + Fixed a problem with the calculated filetransfer speed with + large files on fast connections. + + mbout: + Removed a small memory leak. + + mbfido: + When creating uplink area requests the from aka used is now + the aka defined in the group. + Removed several memory leaks again. + Fixed a bug when a news article was received with a header + line without a key value such as created by wrong configured + newsreaders. + + mbfile: + Added -v commandline switch to suppress virus checking for the + adopt and import commands. Use with great care. + + mbsebbs: + Bluewave reply packets now also process an incoming *.olc file + so now bluewave if fully Bluewave V3 compatible. Internally it + works by converting the *.olc file to a *.pdq file. Patch made + by Redy Rodriguez. + + mbsetup: + Upgrades the nodes records, the new session password is copied + from the old combined mail/session password. + In nodes submenu 14 the session and mail passwords can now be + edited seperatly. This will change again! + Archivers, file transfer protocols and virus scanners found + during first configure of this program are automatic installed + in the setup and enabled. Others are shown there with default + paths but are disabled, they can be used as examples. + Fixed crashing mbsetup in menus 10.3.2, 10.4.5 and 10.4.6. + Menu 1.1 system aka's now has the option to move aka's to + other positions. Added some check's on the main aka's. + + mbtask: + The pinger now uses a fixed sequence number to check if this + is the problem that sometimes the internet seems down. + + +v0.33.21 04-Jun-2002 + + This is the final release of the 0.33.20 development version. + + +v0.33.20 10-Feb-2002 - 04-Jun-2002 + + upgrade: + Remove /opt/mbse/etc/safe.data + Compile sources and install binaries. Restart the BBS. + Enter mbsetup, this will upgrade the databases. + Go into global configuration, exit and save, this will update + the main configuration (add default macro path). + Edit the message groups and file groups for new settings. + Run mbfile check to fix download directory permissions. + Check the setting in menu 10.2.13 if it does what you want it + to do. + + general: + Added structures for area maintenance with area lists. + Installing the maptabs don't give any errors anymore when + installed as user mbse. The location of the source isn't + important anymore to install the maptabs. + Updated German, Spanish and Galego languages. + The location of the sourcefiles is not important anymore. + Added detection of vpopmail in default installation path. + Changed language prompts 372, 373, 387, 388, 389, 390 and 438. + Added the turbodiesel macro language so that reports can be + customized per language and reports. Thanks to Redy Rodriguez + for finding this one and implement it into mbse bbs. + Splitted the No TCP settings in No IBN, No IFC and No ITN. + Removed settings for Non-hold mail and Pickup Primary. + Removed several setting for http setup, this is now handled + by the macro templates. + The rc files for joe, the external editor are now copied to + /usr/lib/joe or /etc/joe depending on your distribution. + Several readme files are now in a new html file, the FAQ. + + common.a: + Added 2 functions to return the OS name and CPU family. + Added a function to return the right tearline. + Added support for ext3 filesystem in diskspace check. + Fixed lharc archives return code to LHA. + Changed mkprod.awk script to support Debian Woody. + The aka2str function now onmits the @ if there is no domain + information. + + clcomm.a + Added counter for mailer TCP/IP sessions. + + diesel.a + New library for parsing macro templates. + + msgbase.a: + Improved logging for opening message bases. + Added function to delete a JAM message base. + Fix for corrupting LastRead pointers on FreeBSD systems. + + mbsetup: + In message groups added default settings for auto area + creation. + Added servicename filemgr to the filemgr services. + When adding or deleting a message area, several extra checks + are done. The JAM base is also removed when deleting. + Layout for message area editor changed, more logical now. + If selecting a file/mailgroup in node edit that is outside the + visible range of groups, the view is adjusted. + If changing the path in an existing file area, the files in + that area are moved to the new path. + It is now possible to move file areas. + It is now possible to move JAM message bases. + Added edit of external message editor in menu 1.4. + Added edit of NoPrompt setting in menus for doors. + Changed edit of message editor in user editor. + Double noderecords are automatic removed with error logging. + Corrected screen layout in menu 1.4.11. + When editing analogue modem lines, the locked portspeed was + in a lot of cases set to 0. + In newfiles and filefind reports sets default template files + during init. + When adding a new newfiles or filefind record some defaults + are automatic filled in. + Splitted no TCP into no IBN, no IFC and no ITN in global and + nodes setup. + When editing a new message area, and the area was made active, + all entered data was erased. + Removed setting for http setup which are now in the macro + templates. + Changed the screen layout of menu 10.2 a bit as suggested by + Vince Coen. + Fixed a non understandable logmessage in check if nodes are + connected to file and or mail groups. + It is now possible to reset a users time left for today. + The top statusbar now displays the bbs Free/Down/Busy status. + Some dangerous menus cannot be entered anymore while some + programs are being used, ie. the bbs must be free. When these + menus are entered, the bbs will be closed for use. + Added menu 8.6, edit BBS list entries. + Fixed numbering of menu 8.7, edit oneliners. + Added menu 8.8 for safe crackers data. If the safe is cracked + it can now be reset. + Protected convert-all setting in menus 10.1 and 10.2 when no + default archiver is defined. + Changed page layout in site.doc + Changed the confusing No Touch setting in tic areas to Touch. + + mbmon: + The top statusbar now displays the bbs Free/Down/Busy status. + Removed nonsense error message when stopped on a signal. + + mbfido: + In AreaMgr and FileMgr changed aka matching for area + connections. Code cleanups. + In FileMgr when %tick=on/off command was received, mbfido + crashed. + Implemented auto area create comparing a new received echo + from a uplink which has a echomail taglist in one of the + mailgroups defined. The area is created with the defaults + from the mailgroup. + If mbfido fails to unzip a incoming mailarchive, a second + attempt is done after a sync() and one second delay. This + seems to be a kernel flush problem. + The same goes for adding .pkt files to the outbound, a second + try is done after a sync() to add the .pkt to the archive. + In the To field of a created TIC file there is now a comma + between the sysop name and fidonet aka. + When creating a filefind netmail reply there was no + destination address. + Corrected spelling errors in the Areamgr and Filemgr help + messages. + Removed some debug logging from the RFC->FTN gate. + Implemented the FileMgr and AreaMgr pause and resume commands. + Changed logging when AreaMgr/FileMgr commands did fail. + Some checks improved and fixed some potential sigsegv crashes. + Reduced aka match level for (dis)connect areas to zone, net. + This should fix problems on systems with multiple aka's when + the first aka is not the aka in the areas. + In mgr result reports, lines with connected areas do now also + display the aka to which they are connected. + The file forward function now always puts a 8.3 filename in + the outgoing ticfile. For most files nothing is changed. + AreaMgr and FileMgr netmails are now split into more netmails + when the become too large. + When a downlink requests an echomail area which is not yet + available, and there is a areas file for some uplink, the area + is automatic created and a areamgr request is sent to the + uplink to connect that area. The area is created with the + defaults from the mailgroup. + Experimental patch in mkftnhdr to create a To address in news + articles where a Reply-To: header is present. + It was not possible to disconnect file areas. + Added nopper code to full mailscan. + Fixed a problem that caused a SIGSEGV when a node was in the + ticfiles setup to forward file to and there was no noderecord. + When a ticfile was received while our aka is in the path, the + bad tic counter wasn't increased. + Made error message in AddMsgHdr function more clear. + Removed experimental patch in news->ftn gate were wrong To: + address was created. + The mbfido news functions doesn't abort anymore when a + newsgroup didn't exist. + For points in echomail no seen-by entry is added. + The AreaMgr and FileMgr responses and notify messages now use + the diesel macro language. + The tic file forward function now uses only filenames in the + subject of the netmail messages without the path. + The tic file forward netmails now uses template forward.tic + When started a second time it doesn't destroy the lockfile + anymore. + When a converted email to news listserver message is processed + that has a header line starting with X-MS-, the headerline is + suppressed because there is no key for this header. This looks + like a new kind of M$ standard. mbnews crashed on this one. + Fixed a small problem in magic filename testing. + In rfc2ftn the Approved: header now becomes a kludge instead + of being plain passed. + Auto file area create implemented, it can use plain tagfiles + or filegate.zxx formatted files. + The mbfido web command now uses macro templates. + Areamgr uplink requests the sender name is now set to the + sysop's name, so he/she will get to read the responses. + New command: areas. This will read all defined area lists for + files and mail groups that have the Auto Change set to Yes. + Missing areas are created, areas not present anymore are + removed if they are empty. Good for bulk areas create. + When missing areas are created, uplink requests are sent to + connect the areas. + Added more checks to processing of file_id.diz files. Also + when it is illegal formatted the already processed lines are + cleared to prevent later malformatted descriptions. + The hatch and magic processors now scan the filenames to test + using the regexp library, this should be more reliable. + Increased the size of the buffer for filesort. + Improved error reporting when file copy fails. + When a virus scanner is started, de mbtask connection timeout + is set to one hour. + Changed the confusing No Touch setting in tic areas to Touch. + When a file to be attached doesn't exist, a error message is + logged and the attach is treaded as an error. + + mbmsg: + When creating non-existend message bases, the path is created + first if it doesn't exist. + Removed nonsense error message when stopped on a signal. + + mbfile: + The mbfile index command now creates the html pages using the + macro templates html.main and html.areas. The files.css file + is no longer needed. + The check function now checks download directory permissions + and tries to correct errors. + Missing download directories are created mode 0775. + Moved check for empty areas to mbfile check function. + The mbfile move command now also moves the thumbnails. + Better console error reporting when files are copied. + Removed nonsense error message when stopped on a signal. + The html file indexes now have better translation from ANSI + to low ascii and html codes. + The import function didn't import files starting with the + letter 't'. + When a virus scanner is started, de mbtask connection timeout + is set to one hour. + The virus scanner was sometimes not executed in the right + directory with the adopt and import functions. + + mball: + Will not crash anymore when it needs more then 10 minutes to + create the allfiles and newfiles lists. + Removed nonsense error message when stopped on a signal. + + mbaff: + The High-ascii table to translate to lowercase has now the + right values to translate the ansi graphics. + Now uses the template newfiles and filefind to create the + reports. + Removed nonsense error message when stopped on a signal. + + mbdiff: + Removed nonsense error message when stopped on a signal. + Improved error reporting when copy fails. + + mbindex: + Removed nonsense error message when stopped on a signal. + + mbtask: + Removed some debug logging. + Creates the semafore is_inet when the internet connections is + available, and removes it when it is down. + Added test for ISDN/modem lines in use. If a line status + change lasted 5 seconds or longer, the oubound will be + rescanned. + Lots of code cleanup. + No setup setting anymore for maximum POTS and ISDN lines, this + is now automatic. + mbtask will now update internal counters how many ISDN and POTS + lines are free to use for dialout. + For ISDN and POTS calls, mbtask now decides which tty to use, + mbcico gets the tty to use as option on the commandline. + Keeps track of the number of mailers running. + Added default path for arealists. + Keeps track of total mailer TCP/IP sessions and will not start + new sessions if the limit from the setup is reached. This will + hopefully prevent that mbcico will use too much bandwidth on + TCP/IP trafic. + Splitted no TCP settings in no IBN, no IFC and no ITN. + Improved the ping tests, better errorlogging and suppresion of + icmp replies that are not for mbtask. Better protected against + flood pings. This should fixes the problem that the internet + seemed down while it was available. + + mbcico: + Fixed binkp driver to accept incoming unprotected sessions. + If a binkp session comes in and there already is a session + with that node, mbcico stopts the binkp session with an error. + Remove some obsolete code that is handled by mbtask. + Added some debug logmessages in ttyio. + Added experimental support for binkp GET command frame, under + test now, seems to work, although the offset request is not + supported. + Registers TCP/IP sessions with mbtask. + All filetransfer times and cps rates are calculated in mSecs. + Splitted no TCP settings in no IBN, no IFC and no ITN. + Removed settings for Non-hold mail and Pickup Primary. + Removed nonsense error message when stopped on a signal. + Fixed some small problems with the history data log. Added tty + information when it is available. + + mbout: + The status display has now 9 digits for the outbound size. + New command, mbout reset , unconditionally resets the + nodes "try" counter, ie. make an undiable node try to call + again. + The status command displays the call attempts. + Removed nonsense error message when stopped on a signal. + + mbsebbs: + On some systems the download taglists contained garbage after + the short filename causing wrong filenames at the users side. + Added support for external message editor written by Redy. + Doors are now passed the parameter to display a prompt after + the door or return silently. + Fixed lharc file return code to LHA. + Calling file transfer protocols now uses the execute call + instead of system. + Improved error logging for file downloads. + When a user has no Location filled in, the bbs doesn't crash + anymore. + The new files scan colored areasnames bar length is corrected. + Fixed the problems with the safecracker door. Removed the + cheat codes and added a delay for the display of the safe + opening. + Removed nonsense error message when stopped on a signal. + + mbnewusr: + New users have the default internal fullscreen editor. + Removed nonsense error message when stopped on a signal. + + mbuser: + If a new user has registered and not yet used the bbs, mbuser + would kill that user because the last login date wasn't set. + It will use the registration date instead. + + mbstat: + The timeout for the wait command was wrong due to a wrong + upsdown semafore test. + Corrected a spelling error. + + hatch: + A new shellscript to hatch files in a tic area. + + mbuseradd: + Added support for vpopmail, vadduser command. + + mbpasswd: + Added support for vpopmail, vpasswd command. + Corrected a define for temp variable. + + mbuser: + Added support for vpopmail, vdeluser command. + + examples: + The Makefile now selects the right little or big endian menu + files to install. + Rebuild the menus and txtfiles for the new external editor. + Removed the mbsetup door from the sample sysop menus. + Added templates.tar, these are the default english macro files + for the diesel library. + + rundoor.sh + Called door.bat instead of doors.bat + + installinit.sh + Modified for SuSE 7.1 and later, the location of the startup + script moved from /sbin to /etc. Patch by Joachim Kuwan. + Also modified init.SuSE for Yast2 on SuSE 8.0 + + mbse.stop: + Added path /usr/local/bin for FreeBSD. Needs the psmisc + package from the ports collection to work. + + init.Debian + Changed user from mbtask to mbse. + diff --git a/ChangeLog_2003 b/ChangeLog_2003 new file mode 100644 index 00000000..0a515a63 --- /dev/null +++ b/ChangeLog_2003 @@ -0,0 +1,457 @@ +$Id: ChangeLog_2003,v 1.1 2004/02/09 14:36:36 mbroek Exp $ + + +v0.38.0 26-Dec-2002 - 03-Oct-2003 + + upgrade: + Note: if upgrading from a 0.37.8 or 0.37.9 development version, + then no upgrade procedure is needed. All others read the next + carefully! + + A bit tricky to upgrade and start using the new debug logfile, + follow the next steps exactly!! + 1. Download and install the source + 2. Run "./configure" + 3. Run "make" (and do not install yet) + 4. Run "mbstat close" + 5. Backup /opt/mbse/bin and /opt/mbse/etc. + 6. Run "mbstat close" + 7. Kill mbtask, mostly "kill `/sbin/pidoff mbtask`" will do. + 8. Run (as root) "make install" to install the new software. + 9. Make sure you are user mbse again. + 10. Start mbtask manual, "mbtask" + 11. Run "mbsetup", enter menu 1, exit, save and close. + 12. Wait one minute. + 13. Run "mbstat open" + After this is done the first time, restarting mbtask can be + done as usual by running the mbsed init script. If something + doesn't work (you get socket errors), it is important that you + kill mbtask during software versions swap. All software must + be of the same build. + Check settings menu 1.5.21 for maximum allowed logins. + Check setting of menu 1.14.15. + Remove ~/etc/archiver.data, start mbsetup menu 3, leave and + save. This updates the archiver view contents commands. + After upgrade you may remove ~/etc/maptabs and it's contents. + After upgrade you may remove ~/etc/bank.data. + After upgrade you may remove ~/etc/safe.data. + If you want, download and install the nu-door and safe-door + packages. + In mbsetup 1.17.3 check if you have the XX,CM,IBN,IFC flags, + which indicates your TCP/IP capabilities. This is only for + systems that use TCP/IP, dialup systems should only have + the XX,CM flags. Important: only protocols that you place + in this entry are supported, so XX,CM,IBN will let your system + only call binkp nodes. + + general: + The nodelist lookup functions are now in a separate library. + This will give us easy implemtation of new nodelist formats + and flags. + Introduced a new file, ~/etc/nodelist.conf, this file will + be used for nodelist lookup behaviour. + The current looked-up nodelist strcuture has an extra field, + the URL how that node must be contacted. + Debug logging is now in a separate file, the normal logging is + now only in the normal logfiles. + Changed all Linux references into GNU/Linux. + Changed the address of the FSF in all sources. + Removed memwatch debugger. + Changed all gif and jpg images to png images. + Added a setup switch for the nodes for selecting the wrong + binkp long filenames escape method for Argus and Irex nodes. + Activated the productcode for mbse that is published in the + ftscprod.007, MBSE now has an official product code. + Changed the website address in several sources. + Added switches for binkp CRC mode in global and node records. + Added check for inconv.h in configure script for UNIX98 + character set conversion. (Not yet used). + Removed external (sysop) chat, chat paging times and other + chat stuff that is of no use anymore. The sysop shows his + presence by running mbmon. The mbchat program is obsolete. + Menu item 22 is added, this is user chat session. + For chat (and sysop/user paging chat) works now using the + mbtask daemon. + In several messages handling functions the international + charset translations are removed because of several bugs. They + will be replaced by standard library functions. Right now the + messages are 8 bit clean and there is no translation on the + gateway. The maptabs are removed. + Menu items 22 and 23 are removed, menu 319 is added. You may + want to replace the default txtfiles and menus, upgraded + versions are in the distribution but are not automatic + installed. + Documented menu 318, was present for a long time, just not in + the html docs. + The main Makefile now sets each txtfiles directory to mode 775 + to allow doors to write ansi/ascii screens. + Removed the safe cracker door, this is now external. + A new developer/translator joined the team, David Gonzalez. + The settings to suppres some IP protocols (global and nodes) + are removed, this behaviour must be set using nodelist flags + configuration. + Debug logging for mail and news now have one setting, the M. + Nodelist debug logging now uses the N character. + In some makefiles the chown user.group syntax changed to + user:group to follow the new POSIX syntax. Please let me know + if you are using an older distribution that complains about + this. This was needed for FreeBSD 4.7. + Added Dutch template macro files. Updated English and German + template macro files. Please remove old ones before installing. + + common.a: + Added a set of general purpose timers. + Node locking tests for non-stale lockfiles older then 6 hours. + Added general code for prgram locking. + The getheader function changed to support stone-age .pkt's. + If the packet year has a Y2K bug, the year is fixed. This is + only cosmetic for logging. + If the zone info is missing, the zone is guessed from 2d aka + matching against the system aka's. Then all mail in the .pkt + file is also assumed to be in that zone if there is no zone + info in the messages also. + Guess what, these packets do still exist in Fidonet, it took + 5 years to find them! If you want to check, call 5:5/0 + Fixed compiler warning in network code. + printable function now escapes all non-printable characters. + In rfcmsg function the Cc: header is now treated as any other + header to prevent a SIGSEGV when the headerline is empty. + Removed charset conversion/translation. + Added integer endian byteorder swapper, usefull for non-Intel + hardware. + The poutCR function for the bbs never did send a newline. + New function to get the real case of a filename. + + nodelist.a: + Added experimental support for IP nodes lookup using a default + domain method. This is not the final implementation yet! + Update, this works now as described in a FSP-xxxx that is in + discussion in the FTSC. This will also work for current + practice. + + msgbase.a: + Moved messages link from mbmsg program into library. + Resolved a buffer overflow problem with kludges larger then + 512 bytes. + + mbcico: + Compiled IEMSI code back in, starts mblogin which is not IEMSI + ready yet. A user with an IEMSI terminal can from there do a + manual login. + If doesn't do Multiple Batch mode anymore against binkp/1.1 + mailers. + File resync during receive finally works. + In binkp we don't send a empty dataframe after a file anymore. + Completly changed the files inbound receive, all files are now + first stored in a unique per node temporary inbound directory. + Only after a successfull session all received files are moved + to the final inbound directory. + Another goodie is that this is more safe on busy multiline + systems. + A light improvement in session handshake setup timers. + Added EMSI handshake timers, this gives a more relaxed EMSI + handshake. + Set the EMSI receive failure count to 20 instead of 6, we can + now even accept buggy maindoor sessions and still display a + banner. + For FTS-0001 sessions the mail password was used instead of the + session password. Also improved the password check. + The product code was not entered in the FTS-0001 packet headers. + Revised some state tables in the binkp session setup stage. + Fixed a possible buffer overflow in the binkp driver. + Implemented CRAM rev.4 change in binkp driver. + Binkp now sends M_BSY to the remote when the bbs is closed. + Better logging of BSY and ERR messages. + The binkp transmitter does now escape the unsafe filename + characters. Method is selectable in the setup. + The binkp receiver now does process escaped filenames. + The binkp protocol now supports MD5 crypted passwords. + Removed some heavy debug code from ttyio functions to increase + throughput. + Standarized raw ifcico protocol logging. + Some minor changes to the raw ifcico protocol, better error + checking and a check for buffer overflow. + YooHoo transmitter fixed for transmitting 16 bits product + codes. + With binkp and EMSI sessions double received remote aka's are + filtered. + When calling ITN nodes, the default port is now 23. + Call setup changed and uses now the nodelist lookup URL. + Changed raw ifcico debug logging. + + mbout: + When a poll was removed, the outbound was not rescanned. + + mbfile: + Added program locking to prevent that more than one mbfile can + run at the same time. + When a file was deleted for age or download age, the 8.3 + filename was not removed from disk. + A better check againts empty upload dates when purging files. + Also added a log when this happens. Please report if you see + any of these. + In the import function several bugfixes for reading files.bbs. + Fixed upper/lowercase filenames bug with import. + Move old files to another area failed, only the symbolic link + was moved. + Prepared for multilanguage html pages creation. + + mbfido: + The rfc to ftn gate now drops the headerlines starting with + X-Spam- because they are only filled with advertisents and are + very large (upto 1200 bytes which is somewhat larger for a + fidonet kludge). + Stone age packet support, see common.a. + Due to a configuration error in some system using some tic + processor mbfido did crash. + Now it will log this and continue processing ticfiles with the + risk of sending files back to the owner of that faulty program. + Added the same check for Seenby lines. + In a scanned netmail destined to our own local UUCP gate the + useless X-FTN-INTL and X-FTN-TOPT kludges are no longer + inserted in the message. + Finding the inbound tic file now uses the new filecase function. + Removed all code for charset translation. + In areamgr/filemgr lists the messages are forced splitted when + the force limit is reached in the middle of a group listing. + The nodes statistics are expanded with flow counters. + If echomail is accepted in a unsecure area or the unsecure + commandline option is set, a violation is logged as warning. + Removed some debugging tests and log messages. + If a tic file was received in uppercase, during import in the + bbs the LFN is converted to lowercase. + Promoted some normal debug logmessages to heavy debug messages + in the outbound queue packer. + Echomail from other zones showed the address of your own zone. + Added logging when other errors are found. + At zonegates, the seenby lines were twice stripped. + Another patch to compensate for sysops that pack pascalnet + files in fidonet packets and send these messages into the world + without zone information. + Made the incoming tic files complete case insensitive, mixed + case is now processed. If such file is received, the LFN will + be set to that name. + The magic unpack command now uses the mail unpack command + instead of file unpack command so that paths in the archive are + junked. + + mbsebbs: + When a message is saved, the messages in that area are linked. + Added check for maximum simultaneous logins. + Removed debug logging for userrecord i/o + During virusscan of file uploads, the mbtask timeout timer is + set to one hour to support very long scans. + Changed logging during user login. + Fixed bugs in QWK mail upload processing. + Allow - and _ in email names (GetstrU function). + Increased internal message buffer size to 700 lines. + Fullscreen editor code cleanup, debug messages removed. + When entering a message, the first character of the subject + line was capitalized. + Fixed recognition of tar.gz files. + Added menu function display file. + Display ascii textfiles now uses the More Y/n/= prompt. + When a new message is saved in a local area, the mailout + semafore is not set anymore. + Offline reader, the reply packets are now handled complete + case insensitive. + Dropped BlueWave v2 format completly, obsolete format. + The BlueWave and QWK download packets can have kludges, this + depends on a setting in the userbase. + In downloaded netmail, if message comes from a point, the FMPT + kludge is allways included in the message. + Added some forgotten checks for a valid QWK board name. + Lots of code cleanups in the offline code. + Added menu 320, toggle Offline Reader Extended Info. + Added new control code: control-U + 8, this displays YES or NO + for the new Extended Info setting. + The display file function now displays the ^U8 code. + Added support for door32.sys dropfile. + Fixed user idle logoff when new mailcheck took too long. + Added email reply when reading new (e)mail. + To page the sysop, the CPAG and CCAN commands to mbtask are now + used. + Removed all old chat code that worked on the tty device. + Added chat client site. If the sysop responds to the page + request, the user is dropped into chatmode in the sysop + channel as soon as the user does nothing (ie in a menu or still + in page mode). + It will now refuse to up/download OLR packets when the system + bbs id is not set in the global setup. + When a reply is made on a message in a area which allows + aliases, the user is asked to use his alias. + When a reply is made on a message in a newsgroup and your + systems has a permanent mail domain the email address is used + as from name. + Removed timebank and nextuser doors. + Added editing of user's signature file. New menu item 319. + If the sysop is exporting a echomail message he will have the + option to save to his private directory or to the rules + directory. If saved to the rules directory the message will + have the filename of the area tag. Normal users can only export + to their private directory. Sysops: now you can start + collecting area rules! + New menu 221, display arearules. This function tries to find + the arearules in the rules directory and if found displays + this to the user. + Fixed whoson list to display user real names and handles again. + Fixed send online message to send to user real names, handles + and unix names again. + The menus are machine endian independant. + Maybe removed a bug where the bbs sometimes crashed during + mail reading. + Fixed some minor things to the door.sys file. + Normal users were allowed to delete messages of other users, + now only the writer or those with sysop access to the area are + allowed to delete messages. + Finally wrote Delete Message from the menu (menu 206). + Removed the safe cracker door. + Changed to use the new nodelist lookup methods. + + mbsetup: + Made menus editor work on non-intel platforms. + Added support for debug logging in menu 1.3 and removed the + mbtask debug switch from menu 18. + Import and purge oneliners now log what is done. + In the nodes setup a switch is added to fallback to the wrong + binkp escape method. + Added menu entry 1.5.21 for setting maximum allowed logins. + Added program locking, only one mbsetup can run at the same + time. + In menu 1.14 added global switch to disable binkp CRC32 file + transfers. + In menu 7.x.3 added a switch to enable binkp CRC32 file + transfers with this node. + In menu 1.14 added a switch to turn MD5 crypted passwords off. + The edit archiver has now an edit line for the view archive + commands. + Added protection against wrong database sizes depending on + global settings. + When moving a message area to area zero mbsetup doesn't crash + anymore. + Added new menu item 319, removed menu items 22 and 23. + Added setup for rules directory. + Added setup for menu 221. Changed description of menu 103. + The menu editor is machine endian independant. + Removed setup for the safe cracker door. + In menu 8.3 showing long option data lines, the lines were too + long for a 80 characters display. + Removed global flags No-IBN, IFC and ITN from the setup. + Removed nodes flags No-IBN, IFC and ITN from the setup. + removed del/rubout/bs keys logging. + + mbtask: + Added support for debug logfile. Dropped the debug switch for + mbtask logging, this is now allways on. + On new installations sets max logins to 1. + Now uses standard locking in ~/var/run + When idle, it now reports the time to the next event to be + seen in mbmon menu 1. + With startup it now shows the tty flags in the log. + Remove some semafore debug messages. + Fixed compiler warnings in network code. + Safer logging of user log messages. + In personal message text the text after a ; character is not + ignored anymore. + With mbtask start, the ports locktimes are reset to zero. + Added CSYS command to report if sysop is available. + Added CPAG command to page the sysop. + Added CCAN command to cancel the sysop page. + Added CCKP command to check for a page. + Added CCON, CCLO, CPUT and CGET commands for chatserver. + Implemented a chatserver, this looks like a simple IRC server + to the users. + Arcmail for non-CM nodes and Txx nodes is now sent during the + node's opening hours or ZMH. + Fixed a bug where one of the nodelists was node closed with + each outbound scan and was causing mbtask to stop functioning + after a few days. + After forking the daemon, the stdin, stdout and stderr are + reopend to /dev/null. + Zero the daily status counters finally works again. + Added experimental code where tossing mail is not started as + long as there are mailers running, but not longer as 30 mins. + This should make the whole system less nervous. + Modified this code, didn't work, the toss was always started + at once. + + mbdiff: + If unpacking a diff file fails, a second attempt is done after + a sync and one second delay. + + mbmon: + Updated software info screen. + Added program locking, only one mbmon can run at the same time + to prevent troubles with chat and sysop available. + Reports sysop available or left the system when mbmon starts + or stops. + Reports a page from a user in row 3 of the screen (but doesn't + do chat right now). + Adjusts its screensize if the environment variables LINES and + COLUMNS are set. + (in ~/.profile add the line "export LINES COLUMNS"). + The show lastcallers now adjusts the number of lines available. + The show server clients screen now adjusts to the number of + lines available. + Added chatserver client, there are 2 modes, one id general chat + and the other is respond to a users page request where the + channel is automatic set. + + mbuser: + Added program locking to prevent that more than one mbuser can + run at the same time. + Added nopper code during pack. + + mbaff: + Added program locking to prevent that more than one mbaff can + run at the same time. + + mball: + Added program locking to prevent that more than one mball can + run at the same time. + + mbmsg: + Moved message linking to msgbase library. + + unix: + Fixed compiler warning. + + examples: + Updated Spaning and English chat menu to use the internal + chatserver. + Removed the last menu item from the offline menu, added new + Extended Info toggle (English only). + Updated offline textfiles to remove point download and add + new Extended Info toggle (English only) + The English and Dutch templates are updated to show the new + nodes flow counters (html.nodes). + English textfiles and menus are updated to show the new menu + functions. + Prepared for more example translations. + Added German template files made by Joachim Kuwan. + + script: + Fixed debian init script to allow it to run over the network + by using kill `pidof mbtask` to kill the daemon. + Added full path to pidof command in FreeBSD init script. + Added new init script for FreeBSD. + + lang: + Added language prompts 18 and 19. + Added germandu, a German language file in "Du" style instead of + "Sie". Written by Malte Tychsen. + Changed the last Englsh language prompts in the german.txt. + New language prompt number 17. + Erased language prompts 18..36. + Changed language prompts 15, 16 and 152. + Changed english, german and dutch language prompts 11, 12, 13, + 14 and 107. + Changed in other languages as well, but in English. + + SETUP.sh + Made the script more portable. + + CRON.sh + Removed explanation about Zone Mail Hour, this is obsolete + for a long time already. + diff --git a/ChangeLog_2004 b/ChangeLog_2004 new file mode 100644 index 00000000..24da9924 --- /dev/null +++ b/ChangeLog_2004 @@ -0,0 +1,889 @@ +$Id: ChangeLog_2004,v 1.1 2005/10/06 20:49:37 mbse Exp $ + + +v0.70.0 06-Jun-2004 - 26-Oct-2004. + + upgrade: + If you run a version older then 0.60.0, first upgrade to 0.60.0 + If you run a version older then 0.60.0, first upgrade to 0.60.0 + (That was twice). + Don't forget to backup /opt/mbse and all fle areas! + + Check if /opt/mbse/var/msgs is empty before using this version. + Make sure that /opt/mbse/queue is empty, then close the + bbs with "mbstat close wait". + Kill mbtask, "kill `/sbin/pidof mbtask` might work. + Now you may do the upgrade with "make install" as root. This + order is important because the files database moves to a new + location (~/var/fdb). Some other directories move too. + Now you may start the bbs again. + + Start "mbsetup", enter 1, global setup, leave and save". + Run "mbfile check" and then "mbfile index". This fixes the + thumbnails if supported by your system. + Update all maintenance scripts to change the semafore directory + to ~/var/sema. + + If you compiled with ./configure --enable-newsgate you may + need to erase the newsgroup names in the echomail areas you + don't want to gate to news. + + In mbsetup menu 1.14 update the TCP/IP connection details. + + In the english txtfiles and menus the doors menu and screens + are updated for the newer doors setup, you might want to + upgrade or use them as examples. + In the examples directory type "make macros" to update the + macro templates. Be carefull if you have personalized versions. + To reinstall the corrected macro templates go into the examples + directory and type "make macros". + + In mbsetup menu 1.7 check the new items 15, 16 and 17. + + If you want to switch running doors as user instead of via sudo + then read doors.html and follow the instructions. + + If you have BBBS uplinks and use automatic uplink requests then + change the setup of these nodes in screen 7.10. + + + general: + Added compile directive for full newsgate. If this switch is + used then mbfido behaves like it did upto version 0.50.0 and + mbnntp is disabled. + Added define for nodelist line length for all programs. + Added -fno-strict-aliasing switch to gcc to prevent some + warnings. + With the newer versions of dosemu running doors as user finally + works. To migrate you need to read doors.html. + Changed security of most directories and files to allow only + bbs users. + In SETUP.sh better xinetd.d system detection. + On Linux SETUP.sh adds user mbse to group wheel and uucp. + SETUP.sh adds disabled telnet service to inetd.conf or xinetd. + + libmbse.a: + In nodelist.conf changed the order of fields to search for ip + information, field 8 before field 6. + Added a new keyword 'ipprefix' in nodelist.conf to define a + table with IP prefixes to use in field 6. + When files are attached that should "leave" after sent (not + truncated or removed) they are now prepended with the @ + character instead of no character. This is compatible with + ifcico but not with other mailers, but should do no harm + because most mailers only look for the ^ and # characters. + Fixed function to return full 5d address in the outbound when + the address is in a different zone then our own zone. + The socket_connect function now sets the global nodenumber from + the reply of mbtask. + + libnodelist.a: + Implemented the ICM flag (FSP-1033). + Fixed IP port override if there is a port added to a protocol. + Removed some debug logging. + + libmsgbase.a: + If a message area becomes empty after a pack, all lastread + pointers are reset to zero. + Removed debug logmessage from jamPack. + + libdbase.a: + Removed some debug logging from files database module. + The files database is moved from ~/fdb to ~/var/fdb. + Added debug logging to dbfdb to find the problem with not + cleaned magic aliases. + Fixed a problem with the files database were the temp file used + for sorting and inserting files didn't close the temp file. + Changed method of inserting new files so that old magic names + are really cleared. + + mbcico: + Implemented the ICM flag (FSP-1033). + In the binkp driver, when files were found to transmit and + didn't exist anymore, they are not added to the list of files + to sent but are marked as already transmitted so they will + be removed from the .flo file. Also, after a successfull + session .flo files with all files marked as transmitted are + removed. With nodes that were marked crash, this will prevent + continuous calling. + Changed to use direct instead of immediate mail. + Changed binkp IsDoing info. + Removed a little debug logging. + + mbout: + Implemented the ICM flag (FSP-1033). + Code cleanup for nodelist processing. + Changed to use direct instead of immediate mail. + + mbfido: + Added compile directive for full newsgate. + Removed logmessage in addpkt function. + Added code to un_attach files during tic import that are + deleted from the system by replace, or keep # magic actions, + but also for files with the same name that are replaced. + Removed debug logging from toberep function since all problems + are solved. + In rfc2ftn added check for ".\n" to change to " .\n" instead of + only check for ".\r\n". + Added support for *.msg files. If any are found, they are + processed and put in a netmail area. From there the mbfido scan + function is automatic called so that the message is sent out or + stays in the area if it has a local destination. File attaches + are supported. Note that this is not a gate, only put *.msg + files in that directory that originate from one of your own + aka's. + Fixed logging of 0 articles in scannews. + With the command "mbfido areas" without the -q option the user + must confirm this action. + For netmails to uplinks for areamgr/filemgr changes, the wrong + password was used. + In large areamgr/filemgr responses each 2048 bytes was an extra + inserted. + No help was displayed when no valid command was given. + Echomail for non-existing areas now finally is stored in the + badmail area. + Echomail received from not connected nodes is stored in the + badmail area unless the area allowes it. + Can now send (hopefully) valid uplink requests to BBBS systems. + Removed some debug logging from un_attach, made one into a + normal logmessage. + The postemail and scanemail functions are changed so that + Outlook email addresses are parsed so that we can reply via + smtp. + During scan the Msg_Read function is now called with a width + of 79 characters instead of 78. This fixes the missing address + on Origin lines of 79 characters long. + The *.msg function now uses Fgets instead of fgets to read the + message. + + mbmsg: + With te post command, the right number of commandline options + is checked, if this is wrong the help message is displayed. + If a message is posted in a local area, no echomail.jam is + updated and the mailout semafore is not set. + Added checks in the mbmsg post command if the To parameter has + the correct syntax for netmail and all other areas. + Will now return a non-zero error if the post() function + failed. + Fixed counter in logfile that should show the number of linked + messages. + With the post command a check is done to see if the input file + has a tearline and origin line, if not mbmsg will add these + lines, else the lines of the input file are used. + + mbfile: + The filenames in the html pages are now the long filenames. + This fixes download problems with some mangled 8.3 filenames. + Fixed a bug where "mbfile k p i" didn't give the help screen. + The html index now uses html named character entities on the + area names on the main index page. + With html index creation if the convert program for the + thumbnails failed, the html pages were wrong. + The thumbnails were created from the 8.3 name but the url was + created to the LFN. Depending on the settings of your apache + server you would see the thumbnails or not. + The check for wrong thumbnails changed from LFN to 8.3 names. + Updated to use the new files database location. + + mbindex: + Code cleanup for nodelist processing. + Added a extra check to see if nodelist datalines are valid to + prevent segfaults on Skynet nodelists. + Does finally compile a username index. + Fixed compiling pointlists where on the Boss line when there + is no last comma on the line. + + mbdiff: + Added EOF character as last character in the new created list. + + mbaff: + In newfiles and filefind reports with the tty info lines, also + display TCP/IP connection details. + + mbstat: + In the wait function the semafore directory was scanned direct + instead of using the library functions. + + mbsebbs: + Added user@domain login for pop3 mailboxes. + If pop3 login fails, the bbs won't hang. + If a users homedirectory doesn't exist, a correct error message + is displayed and logged. + If a user replied to a email and the system was in Own + maildomain mode, the From address was changed to the Fidonet + style address instead of Unix address. + When a netmail reply is done to a node without a valid address + we ask the user if he wants to continue. + Changed menu logging. + The exec_nosuid function for doors now also has a extra small + delay just like all other execute functions to prevent problems + on fast machines. + Added extra fflush in quickscan mail. + When calling the external editor, the fromaddress if available + is given to joe. + In Quick_Bye reset all signal handlers to prevent that die() is + called in case something goes wrong during Quick_Bye. + The fake nodenumber is now obtained from mbtask instead of a + count of tty line records so the used nodenumbers will be a lot + lower then before. + Changed Msg_Read from 78 to 79 characters. + In menu the semafore directory was scanned direct instead of + using the library functions. + + mbnewuser: + Made questions for screenlen, newmail check and newfiles check + dependant of settings in the setup. + During program exit, it tried to remove the wrong socket to + mbtask. + + mbnntp: + If compiled in full newsmode, this program acts like a dummy. + + mbuser: + Fixed permissions. + + mbtask: + Implemented the ICM flag (FSP-1033). + Added defaults for questions for screenlen, newmail check and + newfiles check. + Changed to use direct instead of immediate mail. + When calling mbcico the address passed is now 5d. + Tried to call nodes during ZMH or during a Tyx window when mail + was on hold. + The comm protocol reply to the AINI command now contains a fake + node number. + The magic filenames directory is moved from ~/magic to + ~/var/magic. + The semafore directory is moved from ~/sema to ~/var/sema. + When shutting down on UPS semafore "upsdown", the log was + garbled. + When shutting down on an external event and there were users + online, mbtask did not wait. + + mbsetup: + In mail and files group edit screens, to make an area active + existing connections check is skipped. + If a node record is deleted, the outbox and directory paths + are removed as well if they are empty. + Added user@domain login for pop3 servers in screen 1.12. + Added compile directive for full newsgate to prevent newsgroup + name creation in default compiled mode. + When editing files, after leaving a file record the file range + displayed stays around the last area. + If a message area is deleted and a rulefile is present, this + rulefile is deleted too. + When a new golded.inc file is written, only fidonet records + that are active are written. + When a file area is deleted, the file path wasn't removed. + In menu 2, added 3 checks to see if enough info is entered to + make a valid network setup. + Changed in menu 1.14 some labels and help messages for TCP/IP + global settings. + In menu 1.7 added 3 new items to ask new users for screenlen, + newmail check and newfiles check. + Changed nodes screens to have a separate uplink managers setup + screen, and added switches for BBBS uplinks. + If the convert program is found and was not found before, the + defaults are set in menu 1.15.6. + The files database is moved from ~/fdb to ~/var/fdb. + The magic filenames directory is moved from ~/magic to + ~/var/magic. + The semafore directory is moved from ~/sema to ~/var/sema. + In user setup, if user gets a new security level, his timelimit + is updated with your permission to the new levels. + + examples: + Changed the macro templates for filefind and newfiles. + Fixed 2 spelling errors in the dutch macro templates. + Fixed another spelling error in the filemgr.help template of + all languages. + + script: + Fixed NetBSD init script reload command. + Changed bbsdoor.sh, it now hase a variable pointing to the dos + directory. + Created runvirtual.sh, this replaces rundoor.sh for old systems + that run doors using the obsoleted sudo method. + Rewrote rundoor.sh for running dosemu with user privileges. + Changed all locations for dosemu so that we run in the mbse + environment with privileges of the user running the door. + In the editor script (that calls joe) made a fix for screens + wider then 80 characters. Also fixed the joe path if it should + run in emacs mode. Added FromAddress in the header. + Changed all init and maint scripts to move the semafore + directory from ~/sema to ~/var/sema. + + lang: + Added language prompts 26 and 27. + + + +v0.60.0 09-Feb-2004 - 04-Jun-2004 + + upgrade: + Before upgrade announce all new files! + Compile all programs. + Close the system with mbstat close. + Install programs as root (as usual). + Start mbsetup, this can take a while on a system with lots of + files, during startup the files database will be converted. + After the menu appears, enter global setup, exit and save. + This will also update the message area records and the message + group permission. + Now stop and restart mbtask. + Open the system with mbstat open. + In all message groups set check/set default character set. + In all message areas set the character set to use with the + global editor (to CP437 for example). Local and netmail + areas must be done by hand because they are most likely not + in a group. + The macro templates are updated, you MUST install the newfiles + macro template at least because the format changed! + Type "make help" in the examples subdirectory to see how. + + + general: + Reorganized the library header files. This will make it easier + to switch to dynamic libraries so other apps can link to mbse. + Updated to a new files database structure that allows for + expanding the records like most other databases to allow new + features. + Removed all references to costsharing for ticfiles which wasn't + fully implemented. + Added setup items for subprocess priority and sync filesystem. + Added setup parameter for filefind keyword length. + Removed one setup entry for check for free diskspace, there + were two different values for the same purpose. The removed + one was not used. + Moved doc directory from /opt/mbse/doc to /opt/mbse/share/doc. + Added configure test for CPU optimization flags. Use with + ./configure --enable-optimize. + Added charset kludges for CP852 2 and CP895 2, Czech Latin-2 + and Kamenicky. There are no mapping tables available. + Added new location of joerc files for FreeBSD 4.9 + + SETUP.sh: + Changed to support Darwin (OS X). Note that in earlier days + mbse did compile under OS X, but things are different since + then. Work is underway to let it compile and run again. + To better support Darwin (OS X) a hardware sponsor is needed. + + libmbse.a: + Changed the execute function so it will work on 2.6.x kernels + and fast cpu's. + Added execute_str function for compatibility with the older + api. Added execute_pth function to execute programs in the + path. + Moved the initial delay in the execute functions to the child + process. This solved the "lost child messages". + Added enoughspace function to check diskspace. + + libmsgbase.a: + With JAM_Readheader the Msg.Replyid field wasn't filled. + + libdbase.a: + Added new Files DataBase functions that will handle FDB io + with locking. + + mbaff: + Patched to store long filename in the newfiles database + Writes the ^aCHRS: kludge again in new created messages. + Changed ^aPID to include OS and CPU. + Added macro "u" that holds the magic filerequest name. + When scanning for uploads, files which were hatched now have + the right tic area name instead of AREA n in the announce + record. They also contain the used magic filename if this is + known. + The scan for new uploads function is updated to the new files + database structure. + The filefind function is updated to the new files database + structure. + Updated to use new disk watcher. + Now uses new FDB functions. + + mbsebbs: + Added support for the internal editor for hi-ascii + international character sets. + The screenlength is now really set to the users screenlength. + mbsebbs: + Writes the ^aCHRS: kludge again in new created messages. + Changed ^aPID to include OS and CPU. + Added user selecting a character set, menu 321. + Added login check to see if user has a valid character set. + Added Control-U 9 to display file to show the users character + set in the menus screens. + Added experimental characterset translation to message read. + This will translate the message character set used to the users + character set. Code is used from Martin Junius Fidogate + package. (A better solution may follow in a next release). + In delete file in home directory the Y/N keys were read from + the wrong language prompt. + Replaced system() call with execute. + Updated to the new files database structure. + Fixed SIGCHLD logmessages on Fedora. + Added logging of virus scanner results. + Patches for offline reader programs that create messages with + wrong line terminaters (Sempoint). + Now uses new FDB functions. + The users tag directory wasn't properly cleaned before a new + download session. + The message group stat counters were not updated when a user + posted a message at the bbs. + + mbnewusr: + Replaced system() call with execute. + Fixed SIGCHLD logmessages on Fedora. + + mbout: + Replaced system() call with execute. + In check for T-Mail fileboxes added condition that the zone + must exist in the setup. + + mbfido: + Changed ^aTID to include OS and CPU. + For the tic area create and message area create the check is + now case insensitive, also the area tagnames are forced to + uppercase. This should solve the problems with Linuxnet. + Replaced system() call with execute. + New files who already in the toberep database will not be + added again, but may be updated with newer info. + When removing files during tic import due to replace or maximum + files, thumbnails are now also removed from disk. + Updated tic file import function to the new files database + structure. + Fixed a bug in mbfile kill that destroyed the filebase when a + file was deleted or moved. + Doesn't write Magic Request into files description anymore, + this is now handled outsite the description lines. + Updated to use new disk watcher. + The area tags are now created in /opt/mbse/share/doc/tags. + Fixed SIGCHLD logmessages on Fedora. + The last argument '*' which was hardcoded in the virusscan + function is removed, this should be done in the setup for the + virus scanners. + Added loging of virus scanner results. + When a new echomail area is auto created, the creation date and + the newsgroup name will be set. + Fixed news command, only real newsgroup areas are fetched from + the remote newsserver. + Now uses new FDB functions. + When a bbs created file attach is created, the subject line is + converted so that the path information is removed, this is to + keep programs like FD (and maybe others) happy. + + mbsetup: + In edit message groups added setup for default character set. + In edit message areas added setup for character set for the + area. Also added global edit for character set. + In several places where groups need to be tagged, there is now + a switch (*) to select/deselect all groups at once. + In the user editor the sex is now changed with the spacebar to + prevent typing errors. + In the user editor added character set edit in the second + screen. + Removed users fullscreen chat setting, not used. + Added menu setup for change character set, menu 321. + Replaced system() call with execute. + Added auto upgrade for the files database. + Changed menus 14, 7.n.6, 10.1 and 8.4. + Changed default charset for new mailgroups and message areas + to CP437. + Added setup for filefind keyword length in menu 13. + Added setup items in menu 1.5 for child priority and filesystem + sync calls. + In several menus that can change paths, a command to mbtask is + given to reread filesystem tables when something is changed. + Fixed error if a file area is deleted that has an empty files + database. + Added html sitedocs creation. The advantage of html over the + old plain doc is to easy see crossreferences using hyperlinks. + The html files are created in /opt/mbse/share/doc/html. + The ~/doc/xref.doc and ~/doc/stat.doc are not created anymore, + there was nothing in it yet. + Removed setup for the unused free diskspace parameter. + In nodes edit aka's it was not possible to delete aka's. + Added auto setup for message area creation date. Also creates + a faked newsgroup name in echomail areas. Both settings are + needed for the newsserver. + It wasn't possible anymore to change the number of systems in + menu 1.11.11 + Fixed a header include. + Now uses new FDB functions. + Message group setup now sets mode 660 for ~/etc/mgroups.data. + In menu 1.2 removed Omen Id that was not used. + In menu 18 removed settings for ISP connect and hangup. + + mbcico: + Updated file request function to new files database structure. + Fixed a compile problem on FreeBSD 5.1 + Fixed a bug when a m_get was received with file offset = file + size that would log a negative transfer time and transfer rate. + Fixed a bug when a m_get message was received with the current + file with offset = file size to properly close the file and + unlink from the outbound queue. + Fixed a bug when a m_get message was received on a file that + was already transmitted to remove that file from the outbound + queue. + Removed some debug logging from inbound handler. + Updated to use new disk watcher. + All heavy debug logmessages are now in defines and are only + enabled with ./configure --enable-newbinkp + In check for T-Mail fileboxes added condition that the zone + must exist in the setup. + Added protection against empty domain names received from + remote systems. + Now uses new FDB functions. + + mball: + Replaced system() call with execute. + Added support for files database Magic request field. + Fixed SIGCHLD logmessages on Fedora. + Now uses new FDB functions. + + mbfile: + For creating www pages of the download areas, the new mapping + tables are used to translate from ibmpc characters to + iso-8859-1. + Replaced system() call with execute. + Updated kill, index, check, pack, list, adopt, import, move, + delete and sort to the new files database structure. + The file delete function in kill didn't delete the thumbnail. + The mbfile del and undel commands accept wildcards in the + filename. + Fixed an error in check when a mangled 8.3 filename was changed + and the symbolic link was not adjusted. + Added rearc command. + The check command does now also check if the magic alias file + request names are valid and removes the invalid entries. + Updated to use new disk watcher. + Fixed SIGCHLD logmessages on Fedora. + The toberep command now logs the toberep.data in the debug + logfile. + Mbfile check will abort if a header of a files database is + corrupt. + Mbfile check will now accept an area number to just check one + single area. + Now uses new FDB functions. + + mbmsg: + Writes the ^aCHRS: kludge again in new created messages. + Changed ^aPID to include OS and CPU. + Updated to use new disk watcher. + + mbdiff: + Replaced system() call with execute. + Updated to use new disk watcher. + Fixed SIGCHLD logmessages on Fedora. + + mbuseradd: + Uses the execv instead of system to call the systems useradd + program. + Fixed removing of a OS created homedir. + Added msleep delay in execute child process. + On NetBSD fixed the errormessage when a new user is + created. + + mbpasswd: + Uses the execv instead of system to call the systems vpassswd + program if needed. + Added msleep delay in execute child process. + + mbindex: + Updated to use new disk watcher. + + mbuser: + Updated to use new disk watcher. + + mbmon: + Switched to use new filesystems command. + On screen 2 added disk status. + On screen 3, the warning colors for diskspace are now triggered + by the global config setting, red for the upper limit, and + yellow for the upper limit * 4. Added RO/RW status indicator. + + mbtask: + Added communication commands for disk watch thread. + Added disk watch thread, this will monitor filesystems usage + for only the filesystems that are used by mbse. + Signal handler for sigchld set to sig_dfl, for Fedora. + Removed setup for old diskspace parameter. + Fixed crash on NetBSD Sparc when getsysinfo was called. + Fixed SIGCHLD logmessages on Fedora. + Added mbnntp to the taskregs to count as a user program. + In check for T-Mail fileboxes added condition that the zone + must exist in the setup. + + mblogin: + Changed some defines for NetBSD 1.6.2 + + mbnntp: + New program, news server to read/write echomail with a news + client. Users must be registered bbs users. + + examples: + Added change character set in English menus and textfiles. + Updated all newfiles macro template to include the magic file- + request macro (English, German, Spanish and Dutch). + Updated English, German, Spanish and Dutch macro files: + html.nodes and filemgr.status. + + lang: + Added language prompts 23, 24 and 25. + removed obsolete prompt 240. + Updated germandu.txt (by Malte Tychsen). + + script: + In the maint script removed the check option from the mbfile + command so it will not run every day. + Updated maintenace scripts to check that they are run by user + mbse. The new scripts are not automatic installed, in the ~/etc + directory you will find these scripts with the extension .new + You may need to manually update the scripts before you install + the new scripts manually. + + + +v0.50.0 03-Oct-2003 - 09-Feb-2004 + + general: + Added menu setup switches for doors: Singe user door and + hidden from lists. + Make dist now creates bzip2 archives. + Two html pages are now under control of configure. + The configure scripts shows the use of zlib compression for + Hydra and Binkp. + Updated all documentation to validate html makeup. + Added installation support for Gentoo Linux, contributed by + Capitán X. + Since this version Posix threads are being used, please let + me know if this doesn't compile on you system. + All Makefiles do not strip the binaries anymore, the binaries + are stripped during make install only. This allows to run the + not yet installed binaries under debuggers. + The configure script has a --enable-debugging option so that + all code can be compiled to let it run under debuggers. Not + usefull for production systems. + This version had a lot of testing using valgrind. Most errors + were minor problems. + Added French language file created by Francois Thunus. This + translation is not yet complete. + Cleanup in main makefile, added help. + Revised configure and all Makefiles for better support of + linking with threads libraries. + Changed endian tests using the configure script. + Upgraded to new released ftscprod.008 + Added setup option per node to disable the binkp/1.1 protocol. + Added new binkp/1.1 driver. + In all sources replaced the usleep function with the msleep + function. The usleep function will become obsolete someday. + Incoming and outgoing telnet (ITN) sessions finally works. + + upgrade: + If you don't have any personal archivers, then remove + ~/etc/archiver.data and start mbsetup to recreate the + archivers setup. + If you didn't change anything of the language defaults then + delete /opt/mbse/etc/language.data and run mbsetup to create + a new language.data including the french setup. + Check setting 7.x.3.18 for each node. If you know the node uses + Irex between 2.24 and 2.29 then set this to Yes or you won't + have good sessions without files with this mailer. Sessions + with Irex that do transfer some file are Ok. + + libclcomm: + Fixed a small (not harmfull) buffer overlapped copy detected + by valgrind. + + libcommon: + A small fix in printable log function. + Added a safety check for the TCP registrate function to prevent + stale TCP/IP mailer counts. + Fixed a forgotten fclose in proglock. + Allows node locking with zero bytes lockfiles created by some + other OS when enabled in the setup. + The attach function now checks if a file is already attached. + In execute and execsh on Linux systems sync() is called before + and after running the external program to make sure diskbuffers + are committed. Also added a 300 ms pause. + Added a milliseconds timer. + Code cleanup. + + libmsgbase: + In JAM_Open replaced a strcpy with memmove. + Fixed invalid memory read/write in Msg_Link. + + libdbase: + Code cleanup in dbdupe. + + libnodelist: + Fixed a small memory leak. + + mbsebbs: + The whoson list displays the doorname if set in the menus. + If a door is single user and the door is in use, the second + user can't start the door but gets a message about this + situation. + Fixed a bug where the bbs goes into a loop after idle timeout + during login (and maybe in other situations). + Fixed chat debug logging to only log to the debug.log file. + Posted netmail messages now support CC: lines. The CC: lines + should be the first lines of the message in the format: + CC: Michiel Broek 2:280/28 + The Carbon Copied messages are marked with original sender. + Fixed small memory leak. + Fixed posting to local/echomail areas from bbs users. + A lot of small fixes for problems found with valgrind. + + mbsetup: + Added menu settings for single user door and hide door. Added + setting for the door name in the menus and removed the never + used password for the menu (Was only present in the setup). + In node editor, fixed error message when there was no more + room for new nodes to point to the right menus. + Added support for tar compressed archives. + Changed all fidonet domain names to maximum 8 characters so + that we now follow the FTSC specs. + Removed binkp CRC settings. + Fixed a unitialized unlink call in nodes close. + Fixed unclosed tempfile. + Fixed several small memory leaks. + Added default record for french language. + Added setting in menu 1.14 to allow zero bytes lockfiles + created by another OS. + Added setting in menu 7.x.3.18 to disable the use of binkp/1.1 + protocol per node. + Corrected a spelling error (thanks Vince). + Removed global setup screen for the ftp server. + Reorganised menu 1.4 screen 1 and 2. + Added settings for T-Mail filebox paths in the second screen + of menu 1.4. + Clearing the working message is now only done by the keyboard + read function. + In several menu items added range check for integer values. + In global main aka setup, added check if a domain name is + present. + Updates to the database is now shown to the user. + + mbcico: + Added Hydra zlib compressed data blocks using the idea of Alex + Shakhaylo. The compression will transfer some files about twice + as fast as without compression. + Changed signal handlers to better detect broken TCP links. + Changed two inbound logmessages to debug level. + All internal references to tfido port changed to telnet port + because we now default to telnet port 23 for ITN calls. + Dropped binkp CRC support because it will be incompatible with + future extensions. + Fixed a small memory leak. + New binkp/1.1 driver. Check the upgrade for your Irex links. + In case of troubles please report these. + Added support for T-Mail fileboxes, partly written and info + provided by Przemyslaw Kwiatkowski (2:480/127). + Removed the check to disable calling points. + Added a check to see if we get a URL to call other systems. + If nodelist info fails, increase error counter in steps of 10. + Fixed nodelocks during session handshake after many years. The + problem showed only when mbcico was used together with a mailer + on a different OS. When a aka is busy, the aka is now dropped. + When all akas are busy, a session is impossible and the session + is refused. Thanks to Przemyslaw Kwiatkowski for finding and + documenting this bug. + The total session avg cps is now corrected with the two seconds + session close delay time. + Added PLZ compression option to binkp. + Added telnet input and output filters so we can now call and + answer telnet (ITN) sessions. + + mbfile: + When the areanumber with the adopt command was not given, the + help is displayed instead of trying area 0 that doesn't exist. + With the file move, adopt and import command if the file + already exists in the destination area, the action is refused. + Added mbfile sort command. Files are case insensitive + sorted on the long filename. After sort the indexes are rebuild. + Fixed some logging that should have been debug logging. + Fixed a uninitialized memory pointer in the index command. + Fixed a 3 forgotten file closes in mbfile list. + Removed sync calls that are now in execute. + + mbfido: + Changed two logmessages to debug level. + Fixed a some small memory leaks. + With scannews after a GROUP command when authorisation was + asked we did not perform a login. + Removed sync calls that are now in execute. + + mbtask: + The ping function now runs in a separate thread. + Changed some ping timer logic. + Added a "secret" commandline parameter to allow mbtask to run + under control of debuggers. + The client command server runs in a separate thread. + Fixed some small memory leaks which had no effect on long term + running of mbtask, only leaks during program stop. + Moved the scheduler in a thread. + Rewrote shutdown procedure to make it more portable. + Removed default settings for the ftp server. + Added support for T-Mail fileboxes. + Will call points if a call method is available. + + mbout: + Fixed several memory leaks. + Poll, remove poll and request failed to points which had no + point directory in the outbound, now the directory is created. + Added support for T-Mail fileboxes. + + mbindex: + Fixed a forgotten file close. + + mball: + Fixed 2 forgotten fclose functions. + + mbuser: + Fixed a forgotten file close when nothing was done. + + mbmon: + Fixed a minor problem with an uninitialized array. + + mbdiff: + Removed sync calls that are now in execute. + + mbpasswd: + Fixed a small memory leak. + + mbuseradd: + Now logs to syslog instead of stderr. + + script: + Added install scripts for Gentoo. + Changed all init scripts to allow the slower stopping of mbtask + For the latest Slackware distros a setup script for pkgtool is + added. Most other distro's don't need this. + Dropped support for Slackware pre 7.0. + Changed startup scripts for NetBSD. + Fixed NetBSD init script + All init scripts now clean the ~/var/run directory and start + the bbs allways so that the bbs will try to start after a power + failure. + New scripts are installed with an extension of .new, you need + to check yourself if you can use them to replace your own + possible modified scripts. + Updated the hatch script to abort if it's not configured. + If the user skips to hatch a file, the questions for the magic + and replace command are not shown anymore. + Dropped support for RedHat and Mandrake pre 6.1. + + lang: + Added language prompts 20, 21 and 22. + + examples: + Updated English and Spanish menus with the new door settings. + Fixed some spelling errors in the Dutch templates. + Updated file menus, added View File command. + Changed Dutch newfiles template file. + + html: + Removed the outdated ftsc documents, www.ftsc.org is the place + to look for them + Added upgrade procedure. + diff --git a/ChangeLog_2005 b/ChangeLog_2005 new file mode 100644 index 00000000..08b20f39 --- /dev/null +++ b/ChangeLog_2005 @@ -0,0 +1,451 @@ +$Id: ChangeLog_2005,v 1.1 2006/07/23 09:53:53 mbse Exp $ + + +v0.82.0 06-Oct-2005 - 06-Nov-2005 + + This is a bugfix release for version 0.80.0. + + general: + Made changes to structures and sources to make everything + compatible between 32 and 64 bit systems. Special thanks to + Alan Ianson and Robert Wolfe for testing the 64 bit versions. + Added escaping in client/server comms. It is now allowed to + use comma's in user names, locations etc. + + upgrade: + The bbs menu Change Screenlength is obsolete. Remove this from + the menus (setup.mnu) and ascii/ansi screens (setup.a??). + Owners of 64 bits systems should check if all *.sts files in + the outbound are 12 bytes log. If not, stop the whole bbs and + remove all these files. Then start the bbs again. + Owners of 64 bit systems that have run version 0.80.0 or older + should really backup everything and be prepared that all data + files are not compatible anymore. Blame the GNU people for + changing the storage format for some variables. + After upgrade databases are compatible between 32 and 64 bit + systems. + + libmbse.a: + Added clencode and cldecode to safe escape messages to mbtask. + In nodelock show program name if node is already locked. + + mbcico: + Made binkp GZ and BZ2 compression final. + Fixed compile errors when both zlib and bzlib development + packages are not installed on some distro's. + + mbfido: + Fixed a segfault when tossing as a point echomail without a + seen-by line. + + mbsebbs: + Automatic dynamic detection of the users screensize. + There is no check anymore for a valid tty with network calls, + instead a fake ttyinfo record is created. Modem/ISDN and + console still need a valid configured tty. + Fixed a bug in the email menu that would let the current + mailbox disappear. + Fixed the internal fullscreen editor. + Accepts connections via ssh. + Log close message sent to the user. + Allow comma again in several input functions. + + mbnewusr: + There is no check anymore for a valid tty with network calls, + instead a fake ttyinfo record is created. Modem/ISDN and + console still need a valid configured tty. + Accepts connections via ssh. + + mbtask: + Logs program name that locks serial ports. + Added clencode and cldecode to safe escape messages with + clients. + + mbsetup: + Removed settings for users screenlength. + In tty setup the network records are automatic removed. The + setting for auth log is removed (was never used). + SuSE compile fix. + + lang: Removed prompts 64, 80 and 81. + Changed prompt 348. + Added prompt 31. + + examples: + removed Change Screenlength from the English menus and + txtfiles. + + + +v0.80.0 27-Oct-2004 - 06-Oct-2005 + + Yes, this release took too long to complete. But there were too + many problems that a stable release wasn't a good idea. + + general: + Due to lack of maintainers italian language support is dropped. + Upgraded to ftscprod.010 + Added port to OpenBSD, is under test (and doesn't work yet). + Code cleanup so that compile stops on unknown OSes and CPUs + instead of missing code parts. + Added Unix codepage KOI8-R (Russian) and patches from Dmitry + Komissaroff. + Updated Copyright notices to 2004 to 2005. + From filetranfer records removed the batch and bidirectional + switches, these are no longer needed. + Added new subdirectory mbutils. Some sources from the mbsebbs + subdirectory are moved there. + Changed the CFLAGS back from -O3 to -O2 since there seem some + stablity problems and I want to rule out the possibility that + this is caused by bad gcc optimisation. + + upgrade: + In mbsetup menu 8.2 remove the Italian language. + In /opt/mbse "rm -rf italian". + In /opt/mbse/etc "rm italian.lang". + Or keep it, but you need to take care of updating this language + yourself. + Check mbsetup 7.n.3.14 and 7.n.3.15 settings. + You may limit the mailhistory.html size by setting 1.15.8 + Check mbsetup 1.13.4 and 1.13.5, they should be empty or point + to valid and readable logfiles. If set then ftp and or www + downloads are counted as valid downloads. + Enter setup menu 8.4 once and leave to clear unused data. + Start mbsetup, in screen 1.2 item 10, add your real internet + name or IP there. This MUST be the name that is returned when + you do a nslookup on your external IP address. + Add the following line to /etc/services: + fido 60179/udp # chatserver + Make sure you remove everything related to bbslist menus from + your menus and txtfiles. + Start mbsetup and leave. + You might want to check menu 8.5, file transfer protocols since + we now have internal protocols. + + nodelist.a: + Clear node Hold or Down status if set in nodes setup. + + mbselib.a: + Removed some debug logging. + Added a function to clean subject lines from garbage, trailing + spaces etc. to improve message linking. + Added code for Internet BBS Chat. + + msgbase.a: + Fixed JAM pack function, the lastread pointers could be wrong + if the last messages of an area were deleted. + + libdiesel.a: + Changed the maximum string length from 2560 to 4096 characters. + + libmbinet.a: + Fixed error messages when the host to connect to has a DNS + error. + + charset: + Changed rfc-2045 name x-mac to mac. Changed x-ibmpc to cp437. + This allows rfc mime headers to show official names. + Added some basic things to support Chinese. + + mbcico: + Added support for binkp GZ and BZ2 compression. Can be turned + off per node. To use it configure with --enable-experiment. + Record previous session state so we can better react on failed + sessions. + Added detection of remote options NR, ND and NDA to prepare + for implementation. + Rewrote inbound handling for binkp sessions so that recovery + from failed sessions works, even with compressed transfers. + Fixed crash on received m_get command. + Increased binkp timeout from 180 to 300 seconds. + Added protection during binkp receive for zero bytes compressed + data frames, this will cause uncompress error -5 because zero + bytes can't be compressed at all. + Fixed test for valid aka's in the EMSI handshake that prevented + that host aka's (node /0) were not presented to the remote. + (thanks Przemyslaw Kwiatkowski). + Removed binkp extra debug logging and some standard debug logging. + Added auto workaround for Internet Rex 2.24 upto 2.29 binkp bug. + However, it is still wise to set the "No binkp/1.1" setting in + the node setup if you have a record for such node. + + mbout: + Code cleanup. + + mbfido: + If some newsarticles are not accepted for post, don't treat + this as fatal and clear the sendqueue. + Removed soft-cr filter during message import. + Code cleanup. + Added debug logging in rfc2ftn to track a rare problem. + Added error logmessage in case *.msg path isn't defined. + Fixed a segfault when echomail.jam or netmail.jam is corrupted + when scanning for outgoing mail. + Fixed fido style from address for posting news. + Reinstalled charset translation on the gateway. Changed the + way how FTN kludges are translated to RFC headers. + Dropped support for newsgroup distribution. + In tic processing changed pointer type for seenby lists. + Fixed running out of file descriptors when there are lots of + bad mailpackets. + Fixed commandline parser for mail recipients. + Added subject line clean in several places. + When message areas are autocreated, golded.inc and msg.txt are + recreated for the external editors. + The web stats can now limit the size of mailhistory.html + The FileMgr command connects news nodes SR if set for the tic + area. + Empty *.msg netmails for our own system are dropped with and + logged (just like received empty netmails). Empty netmails to + remote systems are still stored in the netmail base. + Added debug logging for exporting netmails from the messagebase + so that we later can decide to mark these messages auto deleted. + In rfc2ftn a debug logmessage added to check for unrecognised + message ids. + With html create the general strings are now converted to html + entinities. + + mbnntp: + Removed some debug logging. + Added leading zeros for generated msgid's. + Improved charset detection. + Does now send the right mime headers recognised by news clients. + Fixed compile problem with some compilers. + When sending the mime header with the charset used to the news + client, the original message charset is tried first, else the + area charset, else the users charset and if all failed, we send + the us-ascci charset as default. + More patches added from Dmitry Komissaroff to improve charset + support. Also improved msgid linking. + Removed dead timercode. + Code cleanup. + When a message is posted without RFC Messageid, a fidonet MSGID + is fresh created. + Changed X-JAM kludges to X-FTN kludges to make it compatible + with the rest of the gates. + Patches from Dmitry Komissaroff to make charset translation + work on message subject lines. It will now also send the right + charset for the user in the charset header line so that the + client will show the message in the users charset. + + mbfile: + Code cleanup. + With the index command only changed areas are indexed. This + removes the feature request for a switch per area from the + TODO list because this solution works better and much faster. + Dropped support for areas on CDrom. + The adopt command now first checks if the filename is 8.3 or a + long filename and the correct format for import is then set. + With mbfile import, download counters in files.bbs are skipped. + When the file description was missing in files.bbs with the + import command, mbfile would crash. Now a dummy description is + inserted. + The directory from which the import is done is first tested for + write access, if forbidden then no import is done. This also + means you cannot import directly from CD's but that you need + to copy the CD contents first to a harddisk. + Better error reporting if something is wrong. + The import command now also figures out the difference between + 8.3 and long filenames and does the right thing during import. + During file import the destination is tested for both 8.3 and + LFN for an existing file. Improved error reporting. + With mbfile import the original file isn't renamed anymore. + Fixed error reporting when files in files.bbs were not found + on disk. + In mbfile check added a check for the filemode of the real file + in the download area, if it's not 0644 it will be corrected. + With adopt, import and move allow to overwrite a file with the + same name if the -f option is used on the commandline. + + mbsebbs: + Code cleanup. + Changed syntax for calling mbpasswd. + Blocked sysop to chat and page the sysop. Sysops use mbmon. + Fixed errormessage if chatserver is not available. + Added language prompts 29 and 30. + Added logging of remote host and terminal. + Added subject line clean in several places. + Fixed headerlines for posting news. + Fixed headerlines for posting email. + When a message is posted by a user, the CHRS kludge of the user + is used in the message, not the area setting. + When a user logs in, the users locale (guessed value from his + characterset) is set. Experimental to see if libc functions will + support Chinese characters. + Allowed hi-ascii input characters in the internal fs editor, + the chat input and one general input function. This may have + effects for all users not using us-ascii keyboards. + Added more support for Chinese using the traduce function. + Changed color for chat lines with one * at the begin. + The creation of the mailout semafore is now after the hangup + so that mbfido won't start before the bbs is finished. + Removed bbslist menus, this will become a door. + Added #define NFGVMIN 1 in openport. + During hangup we set sighup to ignore. + Some small buffer protections added in addfile. + Fixed keyboad input for all bigendian machines. + Patches from Dmitry Komissaroff to make charset translation + work on message subject lines. + In change handle the first character of the name is not + capitalized. + Changed layout of raw directory listing to support longer + filenames. + Rewrote terminal i/o. + If a user pages the sysop a hint is displayed to fill in the + reason to chat, language prompt 28. + After forced chat, redisplay the last menu. + Removed support for non-batching protocols (xmodem) and for + bidirectional protocols. + Removed Ctrl-F G, this is of no use anymore. + Switched to new modular download and upload functions. + With download from file areas, the long filename is sent to + the users, we will only support protocols that allow this. + When an invalid OLR reply packet is received, it is removed + from the users upload directory. + We don't reward upload time anymore, only bytes. It's more + troubles to implement right then it's worth these days. This + is caused by telnet connections when we never know what the + real linespeed is with to/from the user. + Added the following internal file transfer protocols: Xmodem, + Ymodem, Ymodem-1K, Ymodem-G, Zmodem and Zmodem-8K (aka ZedZap). + Xmodem should not be used, but is available because Ymodem is + available, ie: don't make it available for your users. + For more information see the manual setup/protocol.html. + After upload, files are now stored correctly in the filebase. + In change protocol, changed the colors. + With user chat, the timeout timer wasn't refreshed. + Improved test for users protocol available. + Fixed download K and files setting for users on a new day. + + mbnewusr: + Changed syntax for calling mbpasswd. + If we can detect the users screenlength then we don't bother + asking the user. + Added logging during execute of mbuseradd. + Corrected wrong ANSI setting for new users. + Added logging of remote host and terminal. + If the external editor is configured a new user gets the + external editor by default instead of the internal editor. + During hangup we set sighup to ignore. + Fixed keyboad input for all bigendian machines. + Rewrote terminal i/o. + + mbsetup: + Removed Italian default record. Rewrote code to create default + language records. + Added node setup switch to override node Hold or Down status. + Changed syntax for calling mbpasswd. + Dropped support for newsgroup distribution. + Added setup switches per node to disable PLZ or GZ and BZ2 + compression protocols with binkp. + Added setup entry 1.15.8 to set a limit on the size of the + mailer history html page. + Added setup for Internet BBS Chat. + Added setup items 1.13.4 and 1.13.5. These could point to + a valid apache logfile in common format and ftp xferlog + logfile. If defined then downloads via www and or ftp can + be counted. + Dropped support for file areas on CDrom. + In menu 10 added a switch to default connect downlinks SR + instead if S. + Added language defaults for Chinese. + Removed obsolete bbslist editor. + Made some web sitedoc screens look better. + Changed helplines for areamanager filenames to indicate that + these are case sensitive. + Added support for XxxxBSD console port. + For new systems, there will now be 16 terminal ports created + instead of 10, this is the maximum number of safe created ttys. + The ttys are now sorted on the comment fields. + In file transfers edit, removed switches for batch and bidirect + protocols, added a switch for internal protocols. + New internal protocols are automatic added and the external + protocols are disabled. Some fields of the internal protocols + are protected. + In file areas, free downloads is now default for new areas. + + mbtask: + Code cleanup and memory optimisation. + Added check to some chat commands to check if the chat thread + is running so that clients can give a proper message. + Added Internet BBS Chat. + Dropped support for file areas on CDrom. + The created semafore files are now world readable so that low + privileged users like nobody can check the semafore's. + + mbmon: + Added Internet BBS Chat. + Changed color for chat lines with one * at the begin. + + mbaff: + Fixed a crash when announce a empty description line. + + mbdiff: + Code cleanup. + + mball: + Code cleanup. + If a valid WWW logfile is specified in menu 1.13.4 then http + downloads are counted and the filedatabase is updated before + the allfiles listings are created. Note that the very first + time only a mark is placed in ~/var and nothing is done. + + mbstat: + Code cleanup. + + mbuser: + Code cleanup. + + mbmsg: + Code cleanup and removed dead code. + + mbpasswd: + Added security checks to see if this program is legally called. + Changed commandline syntax. + + mbuseradd: + Added security checks to see if this program is legally called. + + mblogin: + The file ~/etc/login.defs now has default the issue file + enabled so that it also is displayed for incoming telnet users. + + script: + The installinit script now recognizes Fedora Core (but it used + to work anyway). + Added mbfile check to monthly maintenance script. + Fixed the Slackware setup script that didn't make the startup + symlinks in runlevel 4 if the directory /etc/rc.d/rc4.d didn't + exist. + Modified rundoor.sh so that it uses two different dosemu + configuration files, one for virtual modem and one without. + See the manual doors.html. + In the editor script modified the joe header so that it will + work with the new terminal i/o. + + lang: + New prompts 28, 29 and 30. + Added Chinese language. + TODO: remove bbslist entries. + Changed width of prompt 261. + Removed leading spaces of prompt 151. + Removed prompts 259 and 276. + + examples: + Removed bbs list items from the English menus and txtfiles and + the Spanish menus and txtfiles. + Fixed the menu archives so that they contain menu files again. + Fixed logo display. + Fixed Spanish txtfiles to leave out an old support bbs. + + html: + Added batch file upload written by Russell Tiedt to the faq. + + porting: + Compiles more or less on x86_64, there are issues with utmp + and struct lastlog + Compiles on NetBSD i386. + Compiles on Alpha. + Doesn't compile on Mac OS X. + + diff --git a/ChangeLog_2006 b/ChangeLog_2006 new file mode 100644 index 00000000..dc20757b --- /dev/null +++ b/ChangeLog_2006 @@ -0,0 +1,184 @@ +$Id: ChangeLog_2006,v 1.1 2008/11/29 13:55:33 mbse Exp $ + + +v0.90.0 06-Nov-2005 - 23-Jul-2006 + + upgrade: + Start mbsetup once and leave, this will update user records + with the wrong editor choice, fixes the files databases if + needed and upgrades the nodes settings. + Add extra switches to unarchiver commands entry 11, see + mbsetup for the archivers. + In menus 7.n.3.14 check if the NR flag is off, unless you need + it (which I doubt). + + mbsebbs: + Removed antique line editor. + Added check for users homedirectory permissions and attempt to + fix errors. If fatal the connection is dropped. + Fixed virus scan of uploaded archives. + There are no paths anymore in OLR download packet files. + Made OLR bluewave packets CPU independant. + Fixed a strange bug that ftell didn't work right, this caused + corrupt bluewave download packets. + Bluewave is now big/little endian correct. + Added width marker for chat input and fixed linelength. + Added screen rows detection using ANSI sequences needed for + some terminal programs like minicom. + Writes LINES and COLUMNS environment into data.msg so that the + joe editor can use that. + Changed zmodem transmitter timeout to 60 seconds and changed + the zmodem init fase so that clients that don't start automatic + have a chance to start the transfer. + The zmodem transmitter now uses buffered output. + Added Change archiver menu. + Added crontrol-U0 to display current archiver. + Changes to OLR ASCII download: + - area files are named after area tag if possible, dots are + replaced by underscores and extension is .text. + - If available each message now has a msgid in the header. + - Added a .info file with control information. + Fixed logging of wrong file after upload. + + mbtask: + Lots of changes and bugfixes in the IBC chatserver. + Added code to the chatserver thread to handle remote servers + with dynamic dns addresses. + All IBC log lines start now with IBC: to allow easier grep. + Added global reset for chatservers every 24 hours. + Added setup checks for two main configuration settings for IBC + and fail to start if they are missing. + Don't start connections with IBC servers that miss settings in + the chatserver setup. + Several commands now send the server address from the servers + setup to the neighbours. + After server connect send the correct usernames already in chat. + When the IBC server detects a IP change of a remote server it + will completly restart the connection with that remote. + Made several functions multithread aware. + On shutdown also send PART and QUIT messages to all our links + for our own users if they are still online so that the network + will keep the correct state. + Removed all thread programming so that mbtask is now a single + process again. + Fixed startup problem on new installations. + Changed chat welcome message. + Registration info for the clients was send double coded. + Delete users from channel when a server disconnects. + Delete users from a server when server disconnects. + Check for stopped tasks reverted to the old method without + signal handlers. + Fixed comma issue in user/city registration. + Fixed a crash when there is no /etc/services udp port for the + chatserver. + + mbsetup: + In users edit screen, removed append record option. + Blocked changing the users unixname. + Removed antique line editor is edit users. + In IBC setup added a switch for dynamic dns. + Added switches to default extract commands for file_id.diz + files to: + nomarch -U + rar -cu + unrar -cu + unzip -L + Other archives don't support forced upper or lowercase. + Added NR switch to the nodes session setup. + When a filearea was moved to another path the symlinks were not + moved to the new path. + Added archiver selection for nodes in node setup. + In archiver select added checks for valid archivers and allowed + escape without selecting an archiver. + Added selection of archiver select menu. + Added setup switch for tic nodes that need a 4d seen-by line. + When saving message areas, the golded.inc file now has the + groupid numbers from the groups in echomail or news areas. + The message groups now handle groupnumbers for golded groups. + In nodes setup added check for paths when directory sessions + are selected. + + mbcico: + Don't add files to send anymore when batchnr > 20 to prevent + an infinite session loop. + Implemented binkp NR option. + Assume EXTCMD is set when GZ or BZ2 is active. + Added real error message for failed outgoing IP connections. + + mbfido: + Added some experimental code for tic orphans processing. + Fixed crash when receiving bad tics. + Tic orphans and bad crc handling is using a new method. + Now using new tmp workdirectory functions. + When a hatch directory doesn't exist, it is created. + Removed gated SB debug logmessages. + Made searching file file_id.diz case insensitive. + Uses archiver from the setup to pack mail for a node. + If sending crash to a node not in the setup, a default + archiver is now set to ZIP. + Accept unpacket mail for own points. + In created ticfiles in advanced seen-by mode, setting the node + to 4d will add point numbers to the seen-by lines if needed. + When message areas are auto changed, the updated golded.inc + file now has the groupid numbers from the groups in echomail + or news areas. + Seenby addresses in the internal tables did not store the + point numbers. + Added warning log for messages >= 32768 bytes. + + mbfile: + Now using new tmp workdirectory functions. + Fixed file importing of non-archived files. + The test for files.bbs for files to import was done in the + wrong directory. + If a file is not removed from disk during pack, a error log + is created instead of a normal log. + Fixed a crash when files.bbs had empty lines. + Made searching file file_id.diz case insensitive. + Import now skips empty lines in files.bbs. + Import now handles properly missing files. + + mbaff: + Fixed announce and filefind report problem when there were " + characters in the description. + + mbmon: + Improved error message when the chatserver is not configured + in /etc/services. + In chat beeps are heard for system messages. + Added width marker for chat input and fixed linelength. + Better user input checking in chat. + Safer display in chat. + + mbstat: + Don't write in errorlog after normal termination. + Added semafore names to help display. + + mbmsg: + With the post function the right time is now used. + + mbnntp: + Removed AREA:TAG kludge from posted articles. + + libmbse.a: + Added temp workdirectory functions. + On socket send error 2, abort the client program. + Fixed another 32/64 bit issue in the files databases and added + automatic correction if detected. + Fixed comma issue in user/city registration. + + nodelist.a: + Fixed parsing the nodelist when IBN:1.2.3.4 returned the IP + address 1.2.3.4 with port 1. + + lang: + Changed language prompts 373 and 438. + New prompts 86, 87, 88 and 89. + + install: + The checkbasic script uses more tricks to see if you are mbse + su to root before install. + + examples: + Updated Engish menus and txtfiles. + diff --git a/ChangeLog_2007 b/ChangeLog_2007 new file mode 100644 index 00000000..1bfb1ff5 --- /dev/null +++ b/ChangeLog_2007 @@ -0,0 +1,277 @@ +$Id: ChangeLog_2007,v 1.1 2008/11/29 13:55:33 mbse Exp $ + + +v0.92.0 08-Oct-2006 - 16-Oct-2007 + + general: + With this version de default internal character encoding is + UTF-8. BBS users who have a UTF-8 terminal can use the bbs in + UTF-8 mode and should have no troubles at all reading and + writing messages in several language encodings. + Fixed building on FreeBSD, tested on 5.3 and 6.2. + Added support to link to the GeoIP library. If it's present on + your system, mbcico, mbsebbs, mbnewusr and mbnntp will log the + country from which the connection is made. + Added example telnet login for NetBSD. + Dropped support for NetBSD < 3.0. + Added support for Ubuntu. + Added support for the ARM processor. + + upgrade: + Because some directories will be moved, a special upgrade + procedure is needed. Take the following steps: + 1. Don't install the new source yet and make a backup! + 2. In the source topdir run "make clean". + 3. Unpack the new source. + 4. Build new source, "./configure" and "make". + 5. Run "./mbsetup-0.92.0/mbsetup", enter global setup and + leave with save. this 'should' move all your existing + language files to the new directory structure. + 6. "su", run "make install" and restart the bbs. + 7. "exit". + If you didn't do steps 1 and 2 (automatic updates) and you + installed the source over the old source, you will have some + extra files in the lang subdir of the source. No big deal. + If you didn't run step 5 then the new language paths have + the default files from source and not your own. Your own files + are then still under ~/english/*.* ~/dutch/*.* etc. Move the + contents of these subdirs into ~/share/int/menus/en/* etc. + Compile and install this new version. + In all macro files html.* change the charset to UTF-8. You will + find these in /opt/mbse/share/int/macro/*/html.* + If you still have all default macro files then in the source + directory mbsebbs/examples simply run "make macros" to install + the updated versions. + Run "mbfile index -f " once to regenerate all download html + index pages with UTF-8 encoding. Check the error.log for + errors. + In mbsetup menu 1.3.7 change logo.asc into logo.ans and make + sure you have that file. A note about the logo file, it will + be displayed before we know if a user has a utf-8 or ansi + terminal, so change your logo screen so that it has no ansi + grafic characters, just plain ascii with ansi color codes. + Start and leave mbsetup, this will upgrade the newfiles and + filefind reports to set a defaults CHRS kludge CP437 2 which + is good for reports with ANSI blockgraphics. + The next step is optional but advised to make the symbolic + links in the download areas without path information: + + mbse$ cd /opt/mbse/ftp + mbse$ find pub -type l -exec rm '{}' \; + mbse$ mbfile check + + Make sure mbtask is restarted. + + libmbse: + Fixed commandline address parsing if a 2d address was given. + Added coding and decoding to strings that are processed by the + diesel macroprocessor. + Fixed a compile warning in the diesel code. + Moved default language paths into ~/share/int + Fixed a too low memory allocation in clencode. + Added support or the ARM processor, thanks to Simon Voortman. + + libmsgbase: + Added extra debug info in pack function. + Fixed serveral problems with LastRead pointers created by + GoldED. + LastRead records that don't belong to a valid user are + purged. + + libnodelist: + Don't complain if attempt to read an extended nodelist line + fails. + + libdiesel: + Fixed linking problem on OpenBSD. + + mbcico: + If no suitable compressor found for binkp transfers then don't + complain. + Added mbtask command to update the MIB counters. + Fixed a lot of gcc4 compiler warnings. + Fixed compiling on NetBSD 3.1. + Catch SIGIOT. + Fixed outbound scanning on ARM systems. + Added GeoIP support. + + mbout: + Catch SIGIOT. + + mbfido: + Check if active marked virusscanner is really present on the + system. + Don't crash on empty ticfiles. + Fixed log message for scanned netmail. + The make web stat command produces UTF-8 webpages. + The add file function now creates links without pathnames. + In rfc2ftn if we cannot find the incoming charset from the + standard table we will fall back to the charset in the + Content-type: header and try to initialize iconv with that + value. + For debug info help to me, the headers Content-Type and + Content-Transfer-Encoding are temporary stored in the fido + message as kludges. + Added mbtask commands to update the MIB counters. + Fixed mbfile import with too many description lines in + files.bbs + Fixed a buffer overflow when processing TIC files with a lot + of garbage in it. + Fixed a lot of gcc4 compiler warnings. + Fixed compiling on NetBSD 3.1. + If the LFN in the tic file is empty, create a lowercase name. + Catch SIGIOT. + Fixed date conversion in netmail-email gate. + Fixed buffer overwrite caused by bad formatted ticfiles. + + mbsebbs: + Remove some private user files from the users home directory + during logoff. + Check if active marked virusscanner is really present on the + system. + Moved default language paths into ~/share/int + Added terminal setting UTF-8. + Removed setting ANSI/Textmode, allways graphic now. + All *.asc textfiles are now obsolete, only *.ans are valid. + Display ansi file converts to UTF-8 if the user has UTF-8. + Email and FTN mail reading now translates to the users + characterset using glibc iconv. + Changed menus lastcallers, whoson, userlist, pinfo, fsedit, + timestats, filelist to output UTF-8 code if the user has set + that terminal setting. + Uploaded files now have symlinks without pathnames. + Fixed upload crash when a FILE_ID.DIZ is found but the bbs is + not allowed to open it for reading. + The filelist now displays long filenames (finally). + Searching FILE_ID.DIZ in uploads is now case insensitive. + Improved cleaning users tmp dir after virus scan. + Fixed a lot of gcc4 compiler warnings. + Fixed compiling on NetBSD 3.1. + Catch SIGIOT. + Use both CRC and User ID to search lastread record. + Added missing check to see if a user is allowed to post or + reply a message. + Added GeoIP support. + + mbnewusr: + Fixed loading default language for new user. + Catch SIGIOT. + Added GeoIP support. + + mbfile: + The check filebase command now also removes dead symlinks from + the download directories. + The index command produces UTF-8 webpages. + The check command now repairs filenames without using absolute + pathnames. + The adopt, import and move functions now make links without + path. + Help message displays quoted description. + The adopt command works even if the description isn't quoted. + Catch SIGIOT. + + mbindex: + Check nodelist permissions and try to correct them. + When the first Zone entry is missing in the nodelist, mbindex + aborts with a fatal error and doesn't replace the nodelist + index. + Keep the latest 4 instead of 2 nodelists in the nodelist + directory to allow a few weeks for recovery. + Catch SIGIOT. + + mbdiff: + Wrote a lf instead of eof character as last character in the + new nodelist. + Fixed CRC error made by previous change. + Fixed a lot of gcc4 compiler warnings. + Catch SIGIOT. + + mbaff: + For each newfiles and filefind report there is now a CHRS + kludge setting. Reports will be converted to the selected + charset. Origin characterset is CP437 for now. + Catch SIGIOT. + Fixed filefind search filenames case insensitive. + Fixed filefind search in description. + + mball: + Now also creates allfiles.utf and newfiles.utf with UTF-8 + encoded text. These new files will also be added to the zip + archives. + Creates allfiles/newfiles listings with long filenames and + short filenames. + Removed debug logging for checking WWW/FTP downloads. + Catch SIGIOT. + File download checks from http and ftp are now case + insensitive. + + mbmsg: + Catch SIGIOT. + + mbstat: + Catch SIGIOT. + + mbnntp: + Reading news outputs UTF-8 coded articles. Posting is done + with the client side charset and translated when needed. + Suppress logging of passwords. + Catch SIGIOT. + Added GeoIP support. + Removed a lot of debug logging. + + mbsetup: + In generated html sitedocs fixed link from node to tic areas. + Moved default language paths into ~/share/int + In newfiles and filefind reports the Hi-ASCII setting is gone + and a CHRS kludge selection is added. Defaults to CP437 2. + Blocked selection of FTN and Usenet moderated message areas. + Changed the F-PROT scanner name into fpscan. + Removed a not used setting for filefind. + + mbmon: + Added support or the ARM processor. + Catch SIGIOT. + + mbtask: + Some code cleanup. + Fixed s SIGBUS on Sparc/NetBSD systems. + Moved default language paths into ~/share/int + Fixed a too low memory allocation in clencode. + Added SNMP MIB counters and added set commands to increase + these new counters. Note, there is no SNMP interface yet. + Added support or the ARM processor. + Fixed compiling on NetBSD 3.1. + Fixed a too small buffer. + Catch SIGIOT. + Fixed outbound scanning on ARM systems. + + mbuser: + Set default editor on erased records. + + mbpasswd: + Added check for FreeBSD > 6.0 and use sysctl for security check. + + mbuseradd: + Added check for FreeBSD > 6.0 and use sysctl for security check. + + mblogin: + On NetBSD accepts the -a parameter. + + script: + Fixed problems with newer joe editor versions. + script: + Adjusted editor script to use nansi.sys if ansi.sys is not + available in the terminfo database. + script: + Improved grep in init scripts. + + lang: + Renamed language files and changed installation paths. + Language prompts 44, 75 and 76 are obsolete. + + examples: + Upgraded the html macro templates to produce UTF-8 web pages. + Upgraded the txtfiles examples to only have .ans screens. The + logo.ans screen now works on ANSI and UTF-8 terminals. + + diff --git a/DEBUG b/DEBUG new file mode 100644 index 00000000..154ab8f5 --- /dev/null +++ b/DEBUG @@ -0,0 +1,31 @@ + Debugging with MBSE BBS. + +From version 0.33.15 I changed the way debug logging goes. There are no more +#ifdef .. #endif directives in the code that change the loging behaviour. +Lines that could be logged in the code for debug are now written in two +possible ways: + +Syslog('b', "This is always logged for debug"); +Syslog('B', "This is logged if most_debug flag is true"); + +The difference is the uppercase or lowercase logclass. Uppercase is only logged +if the global flag most_debug is set to true. If you want to use it in one of +the sources declare that flag like this: + +extern int most_debug; + +Then, from the moment you need the extra debugging, insert + +most_debug = TRUE; + +in the code, and set it to FALSE when you are done. + +I did this because the extra debug is good for developers but not for regualar +users that need some extra logging. The log output with the most_debug flag +set to TRUE can be huge and does affect system performance. + +For those who are developing code for MBSE BBS, use two kinds on debug logging. + + + Michiel Broek. + diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..d5c63dee --- /dev/null +++ b/Makefile @@ -0,0 +1,164 @@ +# Top-level makefile for MBSE BBS package +# $Id: Makefile,v 1.73 2007/09/01 15:35:47 mbse Exp $ + +include Makefile.global + +OTHER = AUTHORS ChangeLog COPYING DEBUG CRON.sh FILE_ID.DIZ.in \ + INSTALL.in Makefile Makefile.global.in NEWS cpuflags \ + ChangeLog_1998 ChangeLog_1999 ChangeLog_2000 ChangeLog_2001 \ + ChangeLog_2002 ChangeLog_2003 ChangeLog_2004 ChangeLog_2005 \ + README SETUP.sh \ + TODO UPGRADE aclocal.m4 checkbasic config.h.in configure \ + configure.ac \ + paths.h.in README.Gentoo README.Ubuntu +TARFILE = ${PACKAGE}-${VERSION}.tar.bz2 + +############################################################################### + + +all depend: + @if [ -z ${MBSE_ROOT} ] ; then \ + echo; echo " MBSE_ROOT is not set!"; echo; exit 3; \ + else \ + for d in ${SUBDIRS}; do (cd $$d && ${MAKE} $@) || exit; done; \ + fi + +help: + @echo " Help for MBSE BBS make:" + @echo "" + @echo "make [all] Compile all sources" + @echo "make install Install everything (must be root)" + @echo "make depend Update source dependencies" + @echo "make dist Create distribution archive" + @echo "make clean Clean sourcetree and configuration" + @echo "make crontab Install default crontab for mbse" + @echo "make filelist Create filelist for make dist" + @echo "" + +install: + @./checkbasic + @if [ "`id -un`" != "root" ] ; then \ + echo; echo " Must be root to install!"; echo; exit 3; \ + fi + @if [ -z ${PREFIX} ] ; then \ + echo; echo "PREFIX is not set!"; echo; exit 3; \ + fi + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0755 ${PREFIX} + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/bin + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/etc + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/etc/dosemu + @if [ -f ${PREFIX}/etc/lastcall.data ] ; then \ + chmod 0660 ${PREFIX}/etc/lastcall.data ; \ + fi + @if [ -f ${PREFIX}/etc/sysinfo.data ] ; then \ + chmod 0660 ${PREFIX}/etc/sysinfo.data ; \ + fi + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/log + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/tmp + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/home + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0755 ${PREFIX}/share + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0755 ${PREFIX}/share/doc + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0755 ${PREFIX}/share/doc/html + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0755 ${PREFIX}/share/doc/tags + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/menus + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/menus/en + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/menus/es + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/menus/nl + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/menus/de + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/menus/gl + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/menus/zh + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/macro + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/macro/en + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/macro/es + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/macro/nl + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/macro/de + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/macro/gl + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/macro/zh + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/txtfiles + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/txtfiles/en + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/txtfiles/es + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/txtfiles/nl + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/txtfiles/de + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/txtfiles/gl + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/share/int/txtfiles/zh + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0775 ${PREFIX}/ftp + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0775 ${PREFIX}/ftp/pub + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0775 ${PREFIX}/ftp/pub/local + @${INSTALL} -d -o ${ROWNER} -g ${RGROUP} -m 0750 ${PREFIX}/ftp/incoming + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0775 ${PREFIX}/var + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/var/arealists + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/var/badtic + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/var/boxes + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/var/bso + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/var/bso/outbound + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/var/boxes + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/var/dosemu + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/var/dosemu/c + @if [ ! -d ${PREFIX}/var/fdb ] && [ -d ${PREFIX}/fdb ]; then \ + echo "Migrate files database..." ; \ + ${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/var/fdb ; \ + mv ${PREFIX}/fdb/file*.data ${PREFIX}/var/fdb ; \ + echo "...done. You may remove ${PREFIX}/fdb" ; \ + fi + @if [ ! -d ${PREFIX}/var/magic ] && [ -d ${PREFIX}/magic ]; then \ + echo "Migrate magic filenames..." ; \ + ${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/var/magic ; \ + mv ${PREFIX}/magic/* ${PREFIX}/var/magic ; \ + rmdir ${PREFIX}/magic ; \ + echo "...done." ; \ + fi + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/var/fdb + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/var/hatch + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/var/inbound + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/var/magic + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/var/mail + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/var/msgs + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/var/nodelist + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/var/queue + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/var/rules + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0770 ${PREFIX}/var/run + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0775 ${PREFIX}/var/sema + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/var/ticqueue + @${INSTALL} -d -o ${OWNER} -g ${GROUP} -m 0750 ${PREFIX}/var/unknown + @chmod 0775 ${PREFIX}/var + @chmod 0775 ${PREFIX}/var/sema + @if [ -x ${BINDIR}/mbtelnetd ]; then \ + rm ${BINDIR}/mbtelnetd ; \ + echo "removed ${BINDIR}/mbtelnetd"; \ + fi + @for d in ${SUBDIRS}; do (cd $$d && ${MAKE} -w $@) || exit; done + @if [ -d ${PREFIX}/doc ] ; then \ + echo; echo "If there is nothing important in ${PREFIX}/doc" ; \ + echo "you may remove that obsolete directory." ; \ + fi + @for d in de en es fr gl it nl; do \ + if [ -d ${PREFIX}/share/int/$$d ] ; then \ + rmdir ${PREFIX}/share/int/$$d ; \ + echo "Removed directory ${PREFIX}/share/int/$$d" ; \ + fi ; \ + done + @rm -f ${PREFIX}/etc/charset.bin + @rm -f ${PREFIX}/bin/mbcharsetc + @rm -rf ${PREFIX}/sema + @rm -rf ${PREFIX}/tmp/arc + + +dist tar: ${TARFILE} + +clean: + rm -f .filelist core ${TARFILE} paths.h config.h + for d in ${SUBDIRS}; do (cd $$d && ${MAKE} $@) || exit; done; + +${TARFILE}: .filelist + cd ..; ln -s ${PACKAGE} ${PACKAGE}-${VERSION} ; rm -f ${TARFILE}; \ + ${TAR} cvTf ./${PACKAGE}-${VERSION}/.filelist - | bzip2 >${TARFILE} ; \ + rm -f ${PACKAGE}-${VERSION} + +crontab: + sh ./CRON.sh + +.filelist filelist: + (for f in ${OTHER} ;do echo ${PACKAGE}-${VERSION}/$$f; done) >.filelist + for d in ${SUBDIRS}; do (cd $$d && ${MAKE} filelist && cat filelist >>../.filelist) || exit; done; + diff --git a/NEWS b/NEWS new file mode 100644 index 00000000..e69de29b diff --git a/README b/README new file mode 100644 index 00000000..f54feb92 --- /dev/null +++ b/README @@ -0,0 +1,28 @@ +$Id: README,v 1.8 2006/07/03 20:27:21 mbse Exp $ + + MBSE BBS Packages. + + +Distribution naming scheme: + +mbsebbs-0.33.18.tar.bz2 + | | | | + | | | +-------- minor patchlevel + | | +----------- minor version + | +------------- major version + +------------------- package name + +For fidonet distribution, the tar archive and FILE_ID.DIZ are +zipped together in a file like mbb03318.zip + +The odd minor version numbers are developent versions only. From 0.35.1 and up +these will not be released anymore but are only available via cvs. + +The even minor version numbers will be stable releases, they will be available +at http://www.mbse.eu and at 2:280/2802. The first version using this +scheme is 0.36.00 + +For first time installing, see the file INSTALL. After installation, the html +guide is installed in /opt/mbse/html. + + diff --git a/README.Gentoo b/README.Gentoo new file mode 100644 index 00000000..306cc584 --- /dev/null +++ b/README.Gentoo @@ -0,0 +1,19 @@ +$Id: README.Gentoo,v 1.4 2004/09/26 11:40:55 mbse Exp $ + +Unlike most distributions, Gentoo doesn't install programs that may be usefull +for mbsebbs by default. Before you run ./configure emerge the following +programs to make mbsebbs run with most features: + +Package Provides +-------------- -------------------------------------------------------------- +xinetd Icoming TCP/IP networking. +netkit-telnetd Telnet sessions to the bbs. +zip Includes unzip. The default archiver. +arj ARJ archiver. +unarj UnARJ archiver. +rar RAR archiver. +lha LHArc archiver. +arc Arc archiver. +zoo ZOO archiver. +lrzsz Zmodem, Ymodem file transfers for the bbs. + diff --git a/README.Ubuntu b/README.Ubuntu new file mode 100644 index 00000000..d736c1ea --- /dev/null +++ b/README.Ubuntu @@ -0,0 +1,28 @@ +$Id: README.Ubuntu,v 1.2 2007/09/02 10:00:40 mbse Exp $ + +Unlike most distributions, Ubuntu doesn't install programs that may be usefull +for mbsebbs by default. Before you run ./configure install the following +packages to make mbsebbs run with most features: + +Package Provides +-------------- -------------------------------------------------------------- +xinetd Icoming TCP/IP networking. +libc6-dev To allow compiling of programs. +libz-dev To allow mailer zlib compression. +libbz2-dev To allow mailer bz2 compression. +automake To rebuild configure if needed. +telnetd Telnet sessions to the bbs. +arj ARJ archiver. +rar RAR archiver. +lha LHArc archiver. +arc Arc archiver. +zoo ZOO archiver. +lrzsz Zmodem, Ymodem file transfers for the bbs (obsolete). +joe External editor for the bbs. + +Install these programs by using 'sudo apt-get install Package'. +The xinetd and libc6-dev package are mandatory! + + +sudo bash /path/to/SETUP.sh + diff --git a/README.developer b/README.developer new file mode 100644 index 00000000..9a14de09 --- /dev/null +++ b/README.developer @@ -0,0 +1,55 @@ +$Id: README.developer,v 1.30 2007/11/25 14:37:48 mbse Exp $ + + README.developer for MBSE BBS + +This file is only available on CVS, not in the distribution. This file will +hold information about CVS tags, scheduled releases and other info for +development only. There are no secrets in this file because it's public +available. + + + Wordlengths. + +From bits/types.h: + + Here we assume what is presently the case in all the GCC configurations + we support: long long is always 64 bits, long is always word/address size, + and int is always 32 bits. + +IOW: Never use long in the sources because it breaks between 32/64 bit +hardware. + +How about time_t, it seems an alias for long! (and it is). + + + CVS tags. + +mbsebbs-0_33_17 17-Aug-2001 Initial CVS import by Ken. +mbsebbs-0_33_18_current 25-Aug-2001 Upgraded to 0.33.18 current development. +mbsebbs-0_33_18_final 02-Nov-2001 Version 0.33.18 released. +mbsebbs-0_33_19_current 02-Nov-2001 Start 0.33.19 current development. +mbsebbs-0_33_19_final 10-Feb-2002 Version 0.33.19 released. +mbsebbs-0_33_20_current 10-Feb-2002 Start 0.33.20 current development. +mbsebbs-0_33_20_final 04-Jun-2002 Version 0.33.20 finished (not released). +mbsebbs-0_33_21_release 04-Jun-2002 Version 0.33.21 release. +mbsebbs-0_35_01_current 05-Jun-2002 Start 0.35.01 development. +mbsebbs-0_36_00_release 26-Dec-2002 Version 0.36.00 release. +mbsebbs-0_37_00_current 26-Dec-2002 Start version 0.37 development. +mbsebbs-0_38_00_release 03-Oct-2003 Version 0.38.00 release. +mbsebbs-0_39_00_current 09-Oct-2003 Start version 0.39 development. +mbsebbs-0_50_00_release 09-Feb-2004 Version 0.50.0 release. +mbsebbs-0_51_00_current 09-Feb-2004 Start 0.51 development. +mbsebbs-0_60_00_release 04-Jun-2004 Version 0.60.0 release. +mbsebbs-0_61_00_current 06-Jun-2004 Start 0.61 development. +mbsebbs-0_70_00_release 26-Oct-2004 Version 0.70.0 release. +mbsebbs-0_71_00_current 27-Oct-2004 Start 0.71 development. +mbsebbs-0_80_00_release 06-Oct-2004 Version 0.80.0 release. +mbsebbs-0_81_00_current 07-Oct-2005 Start 0.81 development. +mbsebbs-0_82_00_release 06-Nov-2005 Version 0.82.0 release. +mbsebbs-0_83_00_current 06-Nov-2005 Start 0.83 development. +mbsebbs-0_90_00_release 23-Jul-2006 Version 0.90.0 release. +mbsebbs-0_91_00_release 08-Oct-2006 Version 0.91.0 development. +mbsebbs-0_92_00_release 16-Oct-2007 Version 0.92.0 release. +mbsebbs-0_95_00_current 25-Nov-2007 Version 0.95.9 development. + +Michiel. diff --git a/SETUP.sh b/SETUP.sh new file mode 100644 index 00000000..ce0845f1 --- /dev/null +++ b/SETUP.sh @@ -0,0 +1,669 @@ +#!/bin/bash +# +# $Id: SETUP.sh,v 1.38 2008/11/29 13:42:39 mbse Exp $ +# +# Basic setup script for MBSE BBS +# +# (C) Michiel Broek +# +# Customisation section, change the next variables to your need. +# However, all docs refer to the setup below. +# +# Basic bbs root directory. +clear +MHOME=/opt/mbse +PATH=/bin:/sbin:/usr/bin:/usr/sbin: +DISTNAME= +DISTVERS= +OSTYPE=$( uname -s ) + +#------------------------------------------------------------------------ +# +# Logging procedure, needs two parameters. +# +log() { + /bin/echo $( date +%d-%b-%y\ %X ) $1 $2 >> SETUP.log +} + + +#------------------------------------------------------------------------ +# +cat << EOF +MBSE BBS for Unix, first time setup. Checking your system..." + +If anything goes wrong with this script, look at the output of +the file SETUP.log that is created by this script in this +directory. If you can't get this script to run on your system, +mail this logfile to Michiel Broek at 2:280/2802 or email it +to mbroek@mbse.eu + +EOF + +echo -n "Press ENTER to start the basic checks " +read junk + +log "+" "MBSE BBS $0 started by $(whoami)" +log "+" "Current directory is $(pwd)" + +# Check the OS type, only Linux for now. +# +if [ "$OSTYPE" != "Linux" ] && [ "$OSTYPE" != "FreeBSD" ] && [ "$OSTYPE" != "NetBSD" ] && [ "$OSTYPE" != "OpenBSD" ] && [ "$OSTYPE" != "Darwin" ]; then + + cat << EOF + +Your are trying to install MBSE BBS on a $OSTYPE system, however +at this time only Linux, FreeBSD, NetBSD, OpenBSD and Darwin (OS X) +are supported. + +EOF + log "!" "Aborted, OS is $OSTYPE" + exit 2 +fi + + +# +# First do various tests to see which Linux distribution this is. +# +if [ "$OSTYPE" = "Linux" ]; then + PW= + if [ -f /etc/slackware-version ]; then + # Slackware 7.0 and later + DISTNAME="Slackware" + # There are two styles, newer releases are like "Slackware 12.0.0" + if grep -q Slackware /etc/slackware-version ; then + DISTVERS=$( cat /etc/slackware-version | awk '{ print $2 }' ) + else + DISTVERS=$( cat /etc/slackware-version ) + fi + elif [ -f /etc/slamd64-version ]; then + # Slamd64 + DISTNAME="Slamd64" + DISTVERS=`cat /etc/slamd64-version` + elif [ -f /etc/zenwalk-version ]; then + DISTNAME="Zenwalk" + DISTVERS=$( cat /etc/zenwalk-version | awk '{ print $2 }' ) + elif [ -f /etc/debian_version ]; then + # Debian, at least since version 2.2 + DISTNAME="Debian" + DISTVERS=$( cat /etc/debian_version ) + # Ubuntu is based on Debian + if grep -q "Ubuntu" /etc/issue ; then + DISTNAME="Ubuntu" + DISTVERS=$( cat /etc/issue | awk '{ print $2 }' ) + fi + elif [ -f /etc/SuSE-release ]; then + DISTNAME="SuSE" + DISTVERS=$( cat /etc/SuSE-release | grep VERSION | awk '{ print $3 }' ) + # Mandrake test before RedHat, Mandrake has a redhat-release + # file also which is a symbolic link to mandrake-release. + elif [ -f /etc/mandrake-release ]; then + DISTNAME="Mandrake" + # Format: Linux Mandrake release 8.0 (Cooker) for i586 + DISTVERS=$( cat /etc/mandrake-release | awk '{ print $4 }' ) + elif [ -f /etc/redhat-release ]; then + DISTNAME="RedHat" + if grep -q e-smith /etc/redhat-release ; then + DISTVERS=$( cat /etc/redhat-release | awk '{ print $13 }' | tr -d \) ) + else + DISTVERS=$( cat /etc/redhat-release | awk '{ print $5 }' ) + fi + elif [ -f /etc/gentoo-release ]; then + DISTNAME="Gentoo" + DISTVERS=$( cat /etc/gentoo-release | awk '{ print $5 }' ) + else + DISTNAME="Unknown" + fi +elif [ "$OSTYPE" = "FreeBSD" ]; then + DISTNAME="FreeBSD" + DISTVERS=$(uname -r) + PW="pw " +elif [ "$OSTYPE" = "NetBSD" ]; then + DISTNAME="NetBSD" + DISTVERS=$(uname -r) +elif [ "$OSTYPE" = "OpenBSD" ]; then + DISTNAME="OpenBSD" + DISTVERS=$(uname -r) +elif [ "$OSTYPE" = "Darwin" ]; then + DISTNAME="Darwin" + DISTVERS=$(uname -r) +else + DISTNAME="Unknown" +fi +log "+" "Detected \"${OSTYPE}\" (${HOSTTYPE}) \"${DISTNAME}\" version \"${DISTVERS}\"" + + +# Basic checks. +if [ "$DISTNAME" = "Unknown" ]; then + cat << EOF + + Your are trying to install MBSE BBS on $OSTYPE system, however + the distribution is unknown. + +EOF + log "!" "Aborted, OS is $OSTYPE, distribution is unknown" + exit 2 +fi + +if [ $( whoami ) != "root" ]; then +cat << EOF +*** Run $0 as root only! *** + + Because some of the system files must be changed, you must be root + to use this script. + +*** SETUP aborted *** +EOF + log "!" "Aborted, not root" + exit 2 +fi + +if [ "$MBSE_ROOT" != "" ]; then + echo "*** The MBSE_ROOT variable exists: $MBSE_ROOT ***" + echo "*** SETUP aborted ***" + log "!" "Aborted, MBSE_ROOT variable exists: ${MBSE_ROOT}" + exit 2 +fi + +if grep -q ^mbse: /etc/passwd ; then + echo "*** User 'mbse' already exists on this system ***" + echo "*** SETUP aborted ***" + log "!" "Aborted, user 'mbse' already exists on this system" + exit 2 +fi + +if grep -q ^bbs: /etc/group ; then + echo "*** Group 'bbs' already exists on this system ***" + echo "*** SETUP aborted ***" + log "!" "Aborted, group 'bbs' already exists on this system" + exit 2 +fi + +if [ -f /etc/passwd.lock ]; then + echo "*** The password file is locked, make sure that nobody" + echo " is using any password utilities. ***" + echo "*** SETUP aborted ***" + log "!" "Aborted, password file is locked" + exit 2 +fi + +# +# Check if this is Ubuntu. Ubuntu by default has no xinetd installed. +# +if [ "$DISTNAME" = "Ubuntu" ]; then + if [ ! -f /etc/xinetd.d/echo ]; then + echo "*** You seem to be using Ubuntu but have not yet installed xinetd." + echo " 'sudo apt-get install xinetd' will install that for you. ***" + echo "*** SETUP aborted ***" + log "!" "Aborted, Ubuntu without xinetd package" + exit 2 + fi +fi + +clear + +if [ "$OSTYPE" = "Linux" ]; then + if [ -d /opt ]; then + log "+" "Directory /opt already present" + else + mkdir /opt + log "+" "Directory /opt created" + echo "Directory /opt created." + fi +fi + +if [ "$OSTYPE" = "FreeBSD" ] || [ "$OSTYPE" = "NetBSD" ] || [ "$OSTYPE" = "OpenBSD" ] || [ "$OSTYPE" = "Darwin" ]; then + # + # FreeBSD/NetBSD/OpenBSD/Darwin uses /usr/local for extra packages + # and doesn't use /opt. + # Also using /opt means that we are in the root partition which + # by default is very small. We put everything in /usr/local/opt + # and create symlinks to it. + # + if [ -d /opt ]; then + log "+" "Directory /opt already present" + else + if [ -d /usr/local/opt ]; then + log "+" "Directory /usr/local/opt already present" + else + mkdir -p /usr/local/opt + log "+" "Directory /usr/local/opt created" + echo "Directory /usr/local/opt created." + fi + ln -s /usr/local/opt /opt + log "+" "Link /opt to /usr/local/opt created" + echo "Link /opt to /usr/local/opt created." + fi +fi + + +cat << EOF + Basic checks done. + + The detected $OSTYPE distribution is $DISTNAME $DISTVERS + + Everything looks allright to start the installation now. + Next the script will install a new group 'bbs' and two new + users, 'mbse' which is the bbs system account, and 'bbs' which + is the login account for bbs users. This account will have no + password! The shell for this account is the main bbs program. + + One final important note: This script will make changes to some + of your system files. Because I don't have access to all kinds of + distributions and configurations there is no garantee that this + script is perfect. Please make sure you have a recent system backup. + Also make sure you have resque boot disks and know how to repair + your system. It might also be wise to login as root on another + virtual console incase something goes wrong with system login. + + Darwin (OS X) Users must install the .dmg image of user utils + available on Version Tracker and within this archive prior + to continuing the installation. + + If you are not sure, or forgot something, hit Control-C now or +EOF + +echo -n " press Enter to start the installation " +read junk +clear + +#------------------------------------------------------------------------ +# +# The real work starts here +# +log "+" "Starting installation" +echo "Installing MBSE BBS for the first time..." +echo "" +echo -n "Adding group 'bbs'" +$PW groupadd bbs +log "+" "[$?] Added group bbs" + +echo -n ", user 'mbse' $OSTYPE " +if [ "$OSTYPE" = "Linux" ]; then + # Different distros have different needs... + GRPS="uucp" + if grep -q ^wheel /etc/group ; then + GRPS=${GRPS}",wheel" + fi + if [ "$DISTNAME" = "Ubuntu" ]; then + GRPS=${GRPS}",adm,admin" + fi + if grep -q ^dialout /etc/group ; then + GRPS=${GRPS}",dialout" + fi + if grep -q ^dip /etc/group ; then + GRPS=${GRPS}",dip" + fi + log "+" "useradd -c \"MBSE BBS Admin\" -d $MHOME -g bbs -G $GRPS -m -s /bin/bash mbse" + useradd -c "MBSE BBS Admin" -d $MHOME -g bbs -G $GRPS -m -s /bin/bash mbse +elif [ "$OSTYPE" = "FreeBSD" ]; then + pw useradd mbse -c "MBSE BBS Admin" -d $MHOME -g bbs -G wheel,dialer -m -s /usr/local/bin/bash +elif [ "$OSTYPE" = "NetBSD" ]; then + useradd -c "MBSE BBS Admin" -d $MHOME -g bbs -G wheel,dialer -m -s /usr/pkg/bin/bash mbse +elif [ "$OSTYPE" = "OpenBSD" ]; then + useradd -c "MBSE BBS Admin" -d $MHOME -g bbs -G wheel,dialer -m -s /usr/local/bin/bash mbse +elif [ "$OSTYPE" = "Darwin" ]; then + useradd mbse -c "MBSE BBS Admin" -d $MHOME -g bbs -s /bin/bash +fi +log "+" "[$?] Added user mbse" +chmod 755 $MHOME +log "+" "[$?] chmod 755 $MHOME" + +echo -n " writing '$MHOME/.profile'" +cat << EOF >$MHOME/.profile +# profile for mbse +# +export PATH=\$HOME/bin:\$PATH +export MBSE_ROOT=\$HOME +export GOLDED=\$HOME/etc +# For xterm on the Gnome desktop: +cd \$HOME +# +export COLUMNS LINES +EOF +chown mbse $MHOME/.profile +chgrp bbs $MHOME/.profile +echo "" +log "+" "Created $MHOME/.profile" + +# On some systems there is a .bashrc file in the users homedir. +# It must be removed. +if [ -f $MHOME/.bashrc ] || [ -f $MHOME/.bash_profile ]; then + echo "Removing '$MHOME/.bash*'" + rm -f $MHOME/.bash* + log "+" "Removed $MHOME/.bash* files" +fi + +echo "" +echo "Now set the login password for user 'mbse'" +passwd mbse +log "+" "[$?] Password is set for user mbse" + + +echo -n "Adding user 'bbs'" +if [ ! -d $MHOME/home ]; then + mkdir $MHOME/home + log "+" "[$?] Created directory $MHOME/home" +fi +chown mbse $MHOME/home +log "+" "[$?] chown mbse $MHOME/home" +chgrp bbs $MHOME/home +log "+" "[$?] chgrp bbs $MHOME/home" +chmod 770 $MHOME/home +log "+" "[$?] chmod 770 $MHOME/home" +if [ "$OSTYPE" = "Linux" ]; then + useradd -c "MBSE BBS Login" -d $MHOME/home/bbs -g bbs -s $MHOME/bin/mbnewusr bbs + log "+" "[$?] Added user bbs" +fi +if [ "$OSTYPE" = "FreeBSD" ]; then + pw useradd bbs -c "MBSE BBS Login" -d $MHOME/home/bbs -g bbs -s $MHOME/bin/mbnewusr + log "+" "[$?] Added user bbs" +fi +if [ "$OSTYPE" = "NetBSD" ]; then + useradd -c "MBSE BBS Login" -d $MHOME/home/bbs -m -g bbs -s $MHOME/bin/mbnewusr bbs + log "+" "[$?] Added user bbs" +fi +if [ "$OSTYPE" = "OpenBSD" ]; then + useradd -c "MBSE BBS Login" -d $MHOME/home/bbs -m -g bbs -s $MHOME/bin/mbnewusr bbs + log "+" "[$?] Added user bbs" +fi +if [ "$OSTYPE" = "Darwin" ]; then + useradd bbs -c "MBSE BBS Login" -d $MHOME/home/bbs -g bbs -s $MHOME/bin/mbnewuser + log "+" "[$?] Added user bbs" +fi +# Some systems (RedHat and Mandrake) insist on creating a users homedir. +# NetBSD gives errormessages when not creating a homedir, so we let it create. +# These are full of garbage we don't need. Kill it first. +if [ -d $MHOME/home/bbs ]; then + rm -Rf $MHOME/home/bbs + log "+" "[$?] Removed $MHOME/home/bbs" +fi +mkdir -m 0770 $MHOME/home/bbs +log "+" "[$?] mkdir $MHOME/home/bbs" +chown mbse $MHOME/home/bbs +log "+" "[$?] chown mbse $MHOME/home/bbs" +chgrp bbs $MHOME/home/bbs +log "+" "[$?] chgrp bbs $MHOME/home/bbs" + +echo ", removing password:" +if [ "$OSTYPE" = "Linux" ]; then + echo -n "$$" >/etc/passwd.lock + if [ -f /etc/shadow ]; then + log "+" "Standard shadow password system" + # Not all systems are the same... + if grep -q ^bbs:\!\!: /etc/shadow ; then + sed /bbs:\!\!:/s/bbs:\!\!:/bbs::/ /etc/shadow >/etc/shadow.bbs + else + sed /bbs:\!:/s/bbs:\!:/bbs::/ /etc/shadow >/etc/shadow.bbs + fi + log "+" "[$?] removed password from user bbs" + mv /etc/shadow /etc/shadow.mbse + log "+" "[$?] made backup of /etc/shadow" + mv /etc/shadow.bbs /etc/shadow + log "+" "[$?] moved new /etc/shadow in place" + if [ "$DISTNAME" = "Debian" ] || [ "$DISTNAME" = "Ubuntu" ] || [ "$DISTNAME" = "SuSE" ]; then + # Debian, Ubuntu and SuSE use other ownership of /etc/shadow + chmod 640 /etc/shadow + chgrp shadow /etc/shadow + log "+" "[$?] Debian/Ubuntu/SuSE style owner of /etc/shadow (0640 root.shadow)" + else + chmod 600 /etc/shadow + log "+" "[$?] Default style owner of /etc/shadow (0600 root.root)" + fi + echo " File /etc/shadow.mbse is your backup of /etc/shadow" + else + log "+" "Not a shadow password system" + if grep -q ^bbs:\!\!: /etc/passwd ; then + sed /bbs:\!\!:/s/bbs:\!\!:/bbs::/ /etc/passwd >/etc/passwd.bbs + else + sed /bbs:\!:/s/bbs:\!:/bbs::/ /etc/passwd >/etc/passwd.bbs + fi + log "+" "[$?] Removed password of user bbs" + mv /etc/passwd /etc/passwd.mbse + log "+" "[$?] Made backup of /etc/passwd" + mv /etc/passwd.bbs /etc/passwd + log "+" "[$?] Moved new /etc/passwd in place" + chmod 644 /etc/passwd + log "+" "[$?] Changed owner of /etc/passwd" + echo " File /etc/passwd.mbse is your backup of /etc/passwd" + fi + rm /etc/passwd.lock +fi +if [ "$OSTYPE" = "NetBSD" ] || [ "$OSTYPE" = "OpenBSD" ] || [ "$OSTYPE" = "Darwin" ]; then +cat << EOF + +READ THIS CAREFULLY NOW READ THIS CAREFULLY NOW + +I don't know how to automatic remove the password for the "bbs" +user account in NetBSD/Darwin. You have to do this for me! +Next I start the editor you need to use, remove all the stars" +after the word Password, then save the file with "wq!" + +EOF + echo -n "Press Enter when ready " + read junk + chpass bbs +fi +if [ "$OSTYPE" = "FreeBSD" ]; then + # + # FreeBSD has a util to remove a password + # + chpass -p "" bbs + log "+" "[$?] Removed password of user bbs" +fi +echo "" + + +if grep -q ^binkp /etc/services ; then + BINKD=FALSE +else + BINKD=TRUE +fi +if grep -q 60179\/tcp /etc/services ; then + FIDO_TCP=FALSE +else + FIDO_TCP=TRUE +fi +if grep -q 60179\/udp /etc/services ; then + FIDO_UDP=FALSE +else + FIDO_UDP=TRUE +fi +if grep -q ^tfido /etc/services ; then + TFIDO=FALSE +else + TFIDO=TRUE +fi + +log "+" "Services: binkp=$BINKD fido_tcp=$FIDO_TCP fido_udp=$FIDO_UDP tfido=$TFIDO" + +if [ "$FIDO_TCP" = "TRUE" ] || [ "$FIDO_UDP" = "TRUE" ] || [ "$TFIDO" = "TRUE" ] || [ "$BINKD" = "TRUE" ]; then + echo -n "Modifying /etc/services" + log "+" "Modifying /etc/services" + mv /etc/services /etc/services.mbse + cat /etc/services.mbse >/etc/services + echo "#" >>/etc/services + echo "# Unofficial for MBSE BBS" >>/etc/services + echo "#" >>/etc/services + if [ "$BINKD" = "TRUE" ]; then + echo -n ", binkp at port 24554" + echo "binkp 24554/tcp # mbcico IBN mode">>/etc/services + fi + if [ "$TFIDO" = "TRUE" ]; then + echo -n ", tfido at port 60177" + echo "tfido 60177/tcp # mbcico ITN mode (alternate port)">>/etc/services + fi + if [ "$FIDO_TCP" = "TRUE" ]; then + echo -n ", fido tcp at port 60179" + echo "fido 60179/tcp # mbcico IFC mode">>/etc/services + fi + if [ "$FIDO_UDP" = "TRUE" ]; then + echo -n ", fido udp at port 60179" + echo "fido 60179/udp # Chatserver">>/etc/services + fi + chmod 644 /etc/services + echo ", done." +fi + + +if [ -f /etc/inetd.conf ]; then + log "+" "/etc/inetd.conf found, inetd system" + if ! grep -q mbcico /etc/inetd.conf ; then + echo -n "Modifying /etc/inetd.conf" + log "+" "Modifying /etc/inetd.conf" + mv /etc/inetd.conf /etc/inetd.conf.mbse + cat /etc/inetd.conf.mbse >/etc/inetd.conf +cat << EOF >>/etc/inetd.conf + +#:MBSE-BBS: bbs service +binkp stream tcp nowait mbse $MHOME/bin/mbcico mbcico -t ibn +fido stream tcp nowait mbse $MHOME/bin/mbcico mbcico -t ifc +tfido stream tcp nowait mbse $MHOME/bin/mbcico mbcico -t itn +# Example Linux telnet to the BBS +#telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -L $MHOME/bin/mblogin +# Example FreeBSD telnet to the BBS +#telnet stream tcp nowait root /usr/libexec/telnetd telnetd -p $MHOME/bin/mblogin +# Example OpenBSD telnet to the BBS +#telnet stream tcp nowait root /usr/libexec/tcpd telnetd -L $MHOME/bin/mblogin +# Example NetBSD telnet to the BBS +#telnet stream tcp nowait root /usr/libexec/telnetd telnetd -g mbsebbs + +EOF + chmod 644 /etc/inetd.conf + if [ -f /var/run/inetd.pid ]; then + echo -n ", restarting inetd" + kill -HUP $( cat /var/run/inetd.pid ) + log "+" "[$?] restarted inetd" + else + log "!" "Warning: no inetd.pid file found" + fi + echo ", done." + fi +fi + +if [ "$OSTYPE" = "NetBSD" ]; then + if [ -f /etc/gettytab ]; then + if ! grep mbsebbs /etc/gettytab ; then + log "+" "[$?] adding mbsebbs login to /etc/gettytab" +cat << EOF >>/etc/gettytab + +# +# Login entry for mbsebbs. +# +mbsebbs:cd:ck:np:lo=$MHOME/bin/mblogin:sp#38400: +EOF + fi + fi +fi + +if [ -f /etc/xinetd.conf ]; then + log "+" "/etc/xinetd.conf found, xinetd system" + if [ -d /etc/xinetd.d ]; then + log "+" "has xinetd.d subdir, writing files" + XINET="/etc/xinetd.d/mbsebbs" + else + log "+" "appending to xinetd.conf" + XINET="/etc/xinetd.conf" + fi +cat << EOF >> $XINET +#:MBSE BBS services are defined here. +# +# Author: Michiel Broek , 27-Sep-2004 + +service binkp +{ + socket_type = stream + protocol = tcp + wait = no + user = mbse + instances = 10 + server = $MHOME/bin/mbcico + server_args = -t ibn +} + +service fido +{ + socket_type = stream + protocol = tcp + wait = no + user = mbse + instances = 10 + server = $MHOME/bin/mbcico + server_args = -t ifc +} + +service tfido +{ + socket_type = stream + protocol = tcp + wait = no + user = mbse + instances = 10 + server = $MHOME/bin/mbcico + server_args = -t itn +} + +# Telnet to the bbs using mblogin, disabled by default. +# +service telnet +{ + disable = yes + protocol = tcp + instances = 10 + flags = REUSE + log_on_failure += USERID + socket_type = stream + user = root + server = /usr/sbin/telnetd + server_args = -L $MHOME/bin/mblogin + wait = no +} + +EOF + +fi + +# We made it, copy the logfile to mbse's homedir so that when the +# /tmp directory is cleaned, we still have it. +cat SETUP.log >> $MHOME/SETUP.log + +echo "" +echo -n "Press Enter to continue" +read junk +clear + +cat << EOF + The script made it to the end, that looks good. Before you logout do some + sanity checks; + + 1. Can you still login as a normal user. + + 2. Login on another virtual console, network or whatever as user 'mbse'. + Then type 'echo \$MBSE_ROOT'. Does this show the path to + '$MHOME' or nothing. + + 3. Login on another virtual console as user 'bbs'. It should not ask for + a password, but should direct try to start the bbs. This is not + installed yet but you should see error messages and then be logged out. + + If these three tests weren't successfull, restore /etc/passwd and + or /etc/shadow, the backup copies have the extension '.mbse'. + Then issue (as root of course) the following commands: + +EOF +if [ "$OSTYPE" = "Linux" ] || [ "$OSTYPE" = "NetBSD" ] || [ "$OSTYPE" = "OpenBSD" ]; then + if [ "$DISTNAME" = "Ubuntu" ]; then + echo " sudo userdel bbs" + echo " sudo userdel -r mbse" + echo " sudo groupdel bbs" + else + echo " userdel bbs" + echo " userdel -r mbse" + echo " groupdel bbs" + fi +fi +if [ "$OSTYPE" = "FreeBSD" ]; then + echo " pw userdel bbs -r" + echo " pw userdel mbse -r" + echo " pw groupdel bbs" +fi + diff --git a/TODO b/TODO new file mode 100644 index 00000000..909e0fb6 --- /dev/null +++ b/TODO @@ -0,0 +1,138 @@ +$Id: TODO,v 1.353 2008/11/29 13:59:33 mbse Exp $ + + MBSE BBS V0.95.5 TODO list. + --------------------------- + + These are a list of things that must be implemented one way or + another. Some things are urgent and necessary to operate the bbs + without human intervention, others are just for comfort, or nice. + I think this list will always contain items, I only hope the urgent + matters will be removed. + Note that most goodies are still in my mind instead of in this file. + Classes: U = Urgent. + N = Normal, second priority. + L = Cosmetic or nice to have. + W = Feature request. + X = Will not be done unless it's really needed. + +everything: + W: Implement IPv6. + + N: In BSO the i flavor should have been d flavor. + + N: Increase size of Unix usernames > 8. The limit on Slackware is 32 + characters, defined in utmp.h in UT_NAMESIZE + + L: Add personal message area. + + N: The ttyinfo.tty field is too short for NetBSD. + + W: Implement topic groups for file and message areas, with access level + control. + + W: Switch to MySQL as database backend. This can also solve some other + limitations. A php API should be added too. + +mbsebbs: + W: OLR, implement file requests. + + N: Only count posted messages in local mail areas. + + X: OLR: include private email area in download packets. See also global + wish for private mail areas. + + X: OLR: implement some global settings from the offline configuration. + + X: OLR: check qwke extensions. + + N: OLR: qwk, check netmail entered from reader, fido address missing? + + W: Implement kermit protocol, external versions don't work right. + + +mbfido: + N: Don't log an error if no file_id.diz is found. + + W: Check all .flo files for dead attachments. + + W: Check all .flo files for to old attachments. + + W: Count posted messages during mailscan. + + W: Code cleanup and make a structure in this program. Remove duplicate + or similar functions. + + N: Process GoldED filerequest netmails with the filereq flag set, we + should create a .req file with the contents of the subject line. + + N: Process To: and Cc: lines in messages gated from Fido to Internet. + + N: Investigate a method to scan and filter messages using the gateway. + + W: Add macro's for stats of all months. + + W: Implement file requests for directory nodes. + + W: Add %from command to areamgr/filemgr. + + W: Add netmail notification of changed areas. + + W: Make it possible to only virus scan the complete archives. + + W: Let mbfido areas with a special switch update area descriptions. + + W: Send rulefile via netmail for each new connected mail area. + + W: Send notifications to downlinks about changed areas from uplink. + + W: Add statistic mail messages. Via AMC?? + + N: After readalias we need to free the alias list when mbfido ends. + + N: Hatch statistics are not updated. + + W: Copy personal mail to a personal message area. + + W: Someday make retoss from bad possible (volonteers?). + + W: AreaMgr %rescan should auto connect disconnected areas. + +mbcico: + L: Implement binkp option ND and NDA. + +mbnntp: + N: fetched mail doesn't get the status Rcvd if it was for the user. + + N: Do a better job for message linking by newsclients. This is a + problem because we use the message numbers and messages are + sometimes renumbered. This will make some clients try to fetch + the wrong messages because they cache the message id's. + + N: Lastread pointers are not updated. + + N: Investigate a method to scan and filter messages using the gateway. + +mbaff: + W: Rewrite filefind search algorithm. + +mbsetup: + U: Menu 7.x.4.1 password length too large? + + U: Add check for empty data files. + + N: Add a check for double areatag names. See MySQL plan. + + N: Use some sort of sorting for the system aka's and make sure the + main aka with zone's is listed first. Having zone's mixed gives + too high outbound stats and the outbound is scanned multiple times. + + N: Put ZMH fields in the network setup for each zone. Currently Z1-6. + See MySQL plan. + + W: Add global setup in menus 9.1 and 10.1 at least to change uplink + data. + + W: See if a check can be made in file groups setup for the areas file + format, if a filegate list is installed and the filegate switch + setting is wrong, a lot of wrong areas will be created. + diff --git a/UPGRADE b/UPGRADE new file mode 100644 index 00000000..a8d9facc --- /dev/null +++ b/UPGRADE @@ -0,0 +1,18 @@ + UPGRADE INSTRUCTIONS. + + +Read the file ChangeLog from the version you are currently running +until you reach the current version. With every version that needs +upgrade you will find the instructions there. Read them carefully +and perform all necessary steps. + +Read the file ChangeLog from the version you are currently running +until you reach the current version. With every version that needs +upgrade you will find the instructions there. Read them carefully +and perform all necessary steps. + +Yes, I wrote this twice, please do the same with the update +instructions. + + Michiel. + diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 00000000..f8a5ee45 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,149 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4-p4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Like AC_CONFIG_HEADER, but automatically create stamp file. + +AC_DEFUN(AM_CONFIG_HEADER, +[AC_PREREQ([2.12]) +AC_CONFIG_HEADER([$1]) +dnl When config.status generates a header, we must update the stamp-h file. +dnl This file resides in the same directory as the config header +dnl that is generated. We must strip everything past the first ":", +dnl and everything past the last "/". +AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl +ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, +<>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, +<>; do + case " <<$>>CONFIG_HEADERS " in + *" <<$>>am_file "*<<)>> + echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx + ;; + esac + am_indx=`expr "<<$>>am_indx" + 1` +done<<>>dnl>>) +changequote([,]))]) + + +dnl AM_PROG_LEX +dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT +AC_DEFUN(AM_PROG_LEX, +[missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1) +AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex") +AC_PROG_LEX +AC_DECL_YYTEXT]) + + diff --git a/checkbasic b/checkbasic new file mode 100755 index 00000000..7174d760 --- /dev/null +++ b/checkbasic @@ -0,0 +1,50 @@ +#!/bin/sh +# +# $Id: checkbasic,v 1.3 2006/07/02 11:07:36 mbse Exp $ +# +# checkbasic - A script for mbse bbs that checks if your +# installation is correct. If it is then +# normal installation is allowed. If it is +# pristine, basic installation must be done. +# If it bad or incomplete installed it will +# give an errormessage. + +if [ "`grep mbse: /etc/passwd`" != "" ]; then + if [ "`grep bbs: /etc/group`" != "" ]; then + if [ -n "$MBSE_ROOT" ]; then + if [ "$LOGNAME" = "root" ]; then + # + # Newer su versions change logname when su to root without + # environment change. Try to fix LOGNAME variable. + # + export LOGNAME="`who am i | awk -F ' ' '{ print $1 }'`" + fi + if [ "$LOGNAME" = "mbse" ]; then + # + # Looks good, normal mbse user and environment is set. + # Exit with errorcode 0 + echo "Hm, looks good..." + exit 0 + else + echo "*** You are not logged in as user 'mbse' ***" + exit 1 + fi + else + echo "*** MBSE_ROOT environment is not set or you are not 'mbse' ***" + if [ "$LOGNAME" = "root" ]; then + echo "*** You seem to be root, did you use 'su -' instead of 'su' ***" + fi + exit 1 + fi + else + echo "*** Group 'bbs' is missing on your system ***" + exit 1 + fi +else + echo "*** User 'mbse' is missing on your system ***" + echo " It looks like you need to do a basic install." + echo " Make sure you are root and type ./SETUP.sh and" + echo " read the file INSTALL for instructions." +fi +exit 1 + diff --git a/configure b/configure new file mode 100755 index 00000000..1c126f06 --- /dev/null +++ b/configure @@ -0,0 +1,11607 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.61. +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no +fi + + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + case $as_dir in + /*) + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell autoconf@gnu.org about your system, + echo including any error possibly output before this + echo message +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + +exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identity of this package. +PACKAGE_NAME= +PACKAGE_TARNAME= +PACKAGE_VERSION= +PACKAGE_STRING= +PACKAGE_BUGREPORT= + +ac_unique_file="lib/mbselib.h" +ac_default_prefix=/opt/mbse +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_header_list= +ac_subst_vars='SHELL +PATH_SEPARATOR +PACKAGE_NAME +PACKAGE_TARNAME +PACKAGE_VERSION +PACKAGE_STRING +PACKAGE_BUGREPORT +exec_prefix +prefix +program_transform_name +bindir +sbindir +libexecdir +datarootdir +datadir +sysconfdir +sharedstatedir +localstatedir +includedir +oldincludedir +docdir +infodir +htmldir +dvidir +pdfdir +psdir +libdir +localedir +mandir +DEFS +ECHO_C +ECHO_N +ECHO_T +LIBS +build_alias +host_alias +target_alias +SUBDIRS +PACKAGE +MAJOR +MINOR +REVISION +COPYRIGHT +GROUP +OWNER +ROWNER +RGROUP +VERSION +MAKE +AWK +INSTALL +CC +CFLAGS +LDFLAGS +CPPFLAGS +ac_ct_CC +EXEEXT +OBJEXT +SET_MAKE +RANLIB +LN_S +TAR +ZIP +CHOWN +CPP +GREP +EGREP +LIBOBJS +COMPRESS +GZIP +ARC +NOMARCH +ARJ +UNARJ +LHA +RAR +UNRAR +UNZIP +ZOO +HA +ANTIVIR +FPROT +UVSCAN +CLAMAV +RB +SB +RZ +SZ +GOLDEDBIN +GOLDNODE +CONVERT +joebin +joelib +LTLIBOBJS' +ac_subst_files='' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=\$ac_optarg ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute directory names. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { echo "$as_me: error: Working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$0" || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures this package to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF +_ACEOF +fi + +if test -n "$ac_init_help"; then + + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-experiment Compile experimental code + --enable-debugging Compile for debugging + --enable-optimize Enable CPU optimize + --enable-newsgate Compile with newsgate + --enable-gbkdel Delete key is 126 (default is 207) + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +configure +generated by GNU Autoconf 2.61 + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by $as_me, which was +generated by GNU Autoconf 2.61. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args '$ac_arg'" + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + set x "$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + set x "$prefix/share/config.site" "$prefix/etc/config.site" +else + set x "$ac_default_prefix/share/config.site" \ + "$ac_default_prefix/etc/config.site" +fi +shift +for ac_site_file +do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +ac_header_list="$ac_header_list utime.h" +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +ac_config_headers="$ac_config_headers config.h" + +ac_config_commands="$ac_config_commands default-1" + +SUBDIRS="lib mbcico mbfido mbmon mbsebbs mbutils mbnntp mbtask mbsetup unix lang examples html script" + + +# +# General settings for MBSE BBS +# After changeing the version number, run autoconf! +# +PACKAGE="mbsebbs" +MAJOR="0" +MINOR="95" +REVISION="5" +VERSION="$MAJOR.$MINOR.$REVISION" +COPYRIGHT="Copyright (C) 1997-2008 Michiel Broek, All Rights Reserved" +SHORTRIGHT="Copyright (C) 1997-2008 M. Broek" +GROUP="bbs" +OWNER="mbse" +ROWNER="`id -un root`" +RGROUP="`id -gn root`" + + + + + + + + + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define VERSION_MAJOR $MAJOR +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define VERSION_MINOR $MINOR +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define VERSION_REVISION $REVISION +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define COPYRIGHT "$COPYRIGHT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define SHORTRIGHT "$SHORTRIGHT" +_ACEOF + + +SYSTEM="`uname -s`" +CPU="`uname -m`" +LDFLAGS="-L/usr/local/lib" +CPPFLAGS="-I/usr/local/include" + +# +# Checks for programs. +# Try to find GNU make +# +# Extract the first word of "gmake", so it can be a program name with args. +set dummy gmake; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_MAKE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$MAKE"; then + ac_cv_prog_MAKE="$MAKE" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MAKE="gmake" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +MAKE=$ac_cv_prog_MAKE +if test -n "$MAKE"; then + { echo "$as_me:$LINENO: result: $MAKE" >&5 +echo "${ECHO_T}$MAKE" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "make", so it can be a program name with args. +set dummy make; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_MAKE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$MAKE"; then + ac_cv_prog_MAKE="$MAKE" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_MAKE="make" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +MAKE=$ac_cv_prog_MAKE +if test -n "$MAKE"; then + { echo "$as_me:$LINENO: result: $MAKE" >&5 +echo "${ECHO_T}$MAKE" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Alternate awk check, I skip mawk because it doesn't work for MBSE. +# Extract the first word of "gawk", so it can be a program name with args. +set dummy gawk; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="gawk" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "nawk", so it can be a program name with args. +set dummy nawk; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="nawk" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "awk", so it can be a program name with args. +set dummy awk; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="awk" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Try to find GNU install +# Extract the first word of "ginstall", so it can be a program name with args. +set dummy ginstall; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_INSTALL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$INSTALL"; then + ac_cv_prog_INSTALL="$INSTALL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_INSTALL="ginstall" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +INSTALL=$ac_cv_prog_INSTALL +if test -n "$INSTALL"; then + { echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "install", so it can be a program name with args. +set dummy install; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_INSTALL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$INSTALL"; then + ac_cv_prog_INSTALL="$INSTALL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_INSTALL="install" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +INSTALL=$ac_cv_prog_INSTALL +if test -n "$INSTALL"; then + { echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +# +# List of possible output files, starting from the most likely. +# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) +# only as a last resort. b.out is created by i960 compilers. +ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' +# +# The IRIX 6 linker writes into existing files which may not be +# executable, retaining their permissions. Remove them first so a +# subsequent execution test works. +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi + +{ echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6; } +if test -z "$ac_file"; then + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6; } + +{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6; } ;; + xno) + { echo "$as_me:$LINENO: result: unsupported" >&5 +echo "${ECHO_T}unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } +set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + SET_MAKE= +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +{ echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6; } +fi + +# Extract the first word of "tar", so it can be a program name with args. +set dummy tar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_TAR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$TAR"; then + ac_cv_prog_TAR="$TAR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_TAR="tar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +TAR=$ac_cv_prog_TAR +if test -n "$TAR"; then + { echo "$as_me:$LINENO: result: $TAR" >&5 +echo "${ECHO_T}$TAR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "zip", so it can be a program name with args. +set dummy zip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ZIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ZIP"; then + ac_cv_prog_ZIP="$ZIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ZIP="zip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ZIP=$ac_cv_prog_ZIP +if test -n "$ZIP"; then + { echo "$as_me:$LINENO: result: $ZIP" >&5 +echo "${ECHO_T}$ZIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "chown", so it can be a program name with args. +set dummy chown; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_CHOWN+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $CHOWN in + [\\/]* | ?:[\\/]*) + ac_cv_path_CHOWN="$CHOWN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_dummy="/bin:/sbin:/usr/bin:/usr/sbin:" +for as_dir in $as_dummy +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_CHOWN="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_CHOWN" && ac_cv_path_CHOWN="chown" + ;; +esac +fi +CHOWN=$ac_cv_path_CHOWN +if test -n "$CHOWN"; then + { echo "$as_me:$LINENO: result: $CHOWN" >&5 +echo "${ECHO_T}$CHOWN" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Extract the first word of "grep ggrep" to use in msg output +if test -z "$GREP"; then +set dummy grep ggrep; ac_prog_name=$2 +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_GREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + # Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_GREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +GREP="$ac_cv_path_GREP" +if test -z "$GREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_GREP=$GREP +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +echo "${ECHO_T}$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + # Extract the first word of "egrep" to use in msg output +if test -z "$EGREP"; then +set dummy egrep; ac_prog_name=$2 +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_EGREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_EGREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +EGREP="$ac_cv_path_EGREP" +if test -z "$EGREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_EGREP=$EGREP +fi + + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +{ echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 +echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6; } +if test "${ac_cv_c_bigendian+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # See if sys/param.h defines the BYTE_ORDER macro. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN \ + && BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN) + bogus endian macros +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + # It does; now see whether it defined to BIG_ENDIAN or not. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_bigendian=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_c_bigendian=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # It does not; compile a test program. +if test "$cross_compiling" = yes; then + # try to guess the endianness by grepping values into an object file + ac_cv_c_bigendian=unknown + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; +short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; +void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } +short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; +short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; +void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } +int +main () +{ + _ascii (); _ebcdic (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then + ac_cv_c_bigendian=yes +fi +if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_bigendian=no +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 +echo "${ECHO_T}$ac_cv_c_bigendian" >&6; } +case $ac_cv_c_bigendian in + yes) + +cat >>confdefs.h <<\_ACEOF +#define WORDS_BIGENDIAN 1 +_ACEOF + ;; + no) + ;; + *) + { { echo "$as_me:$LINENO: error: unknown endianness +presetting ac_cv_c_bigendian=no (or yes) will help" >&5 +echo "$as_me: error: unknown endianness +presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} + { (exit 1); exit 1; }; } ;; +esac + + + +# +# Additional commandline switches +# +# Check whether --enable-experiment was given. +if test "${enable_experiment+set}" = set; then + enableval=$enable_experiment; experiment=$enableval +else + experiment=no +fi + +if test "$experiment" = "yes"; then + cat >>confdefs.h <<\_ACEOF +#define USE_EXPERIMENT 1 +_ACEOF + +fi + +# Check whether --enable-debugging was given. +if test "${enable_debugging+set}" = set; then + enableval=$enable_debugging; debugging=$enableval +else + debugging=no +fi + +if test "$debugging" = "yes"; then + CFLAGS="-O -g -Wall -Wshadow -Wwrite-strings -Wstrict-prototypes -D_REENTRANT -I/usr/local/include" +else + CFLAGS="-O2 -fno-strict-aliasing -Wall -Wshadow -Wwrite-strings -Wstrict-prototypes -D_REENTRANT -I/usr/local/include" +fi + +# Check whether --enable-optimize was given. +if test "${enable_optimize+set}" = set; then + enableval=$enable_optimize; optimize=$enableval +else + optimize=no +fi + +if test "$optimize" = "yes"; then +{ echo "$as_me:$LINENO: checking for cpuflags" >&5 +echo $ECHO_N "checking for cpuflags... $ECHO_C" >&6; } + for cpuflagsbin in /usr/bin /usr/local/bin /usr/pkg/bin `pwd` NONE; do + if test "$cpuflagsbin" = "NONE"; then + { echo "$as_me:$LINENO: result: unknown" >&5 +echo "${ECHO_T}unknown" >&6; } + elif test -x $cpuflagsbin/cpuflags; then + CPUFLAGS=`$cpuflagsbin/cpuflags` + { echo "$as_me:$LINENO: result: $CPUFLAGS" >&5 +echo "${ECHO_T}$CPUFLAGS" >&6; } + CFLAGS="$CPUFLAGS $CFLAGS" + break + fi + done +fi + + +# +# Enable full newsgate, this was default upto 0.50.0 +# +# Check whether --enable-newsgate was given. +if test "${enable_newsgate+set}" = set; then + enableval=$enable_newsgate; newsgate=$enableval +else + newsgate=no +fi + +if test "$newsgate" = "yes"; then + cat >>confdefs.h <<\_ACEOF +#define USE_NEWSGATE 1 +_ACEOF + + NEWSGATE="Yes" +else + NEWSGATE="No" +fi + + +# +# Checks for libraries and functions. +# +{ echo "$as_me:$LINENO: checking for re_comp in -lcompat" >&5 +echo $ECHO_N "checking for re_comp in -lcompat... $ECHO_C" >&6; } +if test "${ac_cv_lib_compat_re_comp+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcompat $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char re_comp (); +int +main () +{ +return re_comp (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_compat_re_comp=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_compat_re_comp=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_compat_re_comp" >&5 +echo "${ECHO_T}$ac_cv_lib_compat_re_comp" >&6; } +if test $ac_cv_lib_compat_re_comp = yes; then + result=yes +else + result=no +fi + +if test "$result" = "yes"; then + LIBS="$LIBS -lcompat" +fi + +{ echo "$as_me:$LINENO: checking for pw_age in struct passwd" >&5 +echo $ECHO_N "checking for pw_age in struct passwd... $ECHO_C" >&6; } +if test "${ac_cv_struct_passwd_pw_age+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + struct passwd pw; pw.pw_age = ""; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_struct_passwd_pw_age=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_struct_passwd_pw_age=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_struct_passwd_pw_age" >&5 +echo "${ECHO_T}$ac_cv_struct_passwd_pw_age" >&6; } +if test "$ac_cv_struct_passwd_pw_age" = "yes"; then + cat >>confdefs.h <<\_ACEOF +#define ATT_AGE 1 +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for pw_comment in struct passwd" >&5 +echo $ECHO_N "checking for pw_comment in struct passwd... $ECHO_C" >&6; } +if test "${ac_cv_struct_passwd_pw_comment+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + struct passwd pw; pw.pw_comment = ""; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_struct_passwd_pw_comment=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_struct_passwd_pw_comment=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_struct_passwd_pw_comment" >&5 +echo "${ECHO_T}$ac_cv_struct_passwd_pw_comment" >&6; } +if test "$ac_cv_struct_passwd_pw_comment" = "yes"; then + cat >>confdefs.h <<\_ACEOF +#define ATT_COMMENT 1 +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for setspent in -lshadow" >&5 +echo $ECHO_N "checking for setspent in -lshadow... $ECHO_C" >&6; } +if test "${ac_cv_lib_shadow_setspent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lshadow $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char setspent (); +int +main () +{ +return setspent (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_shadow_setspent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_shadow_setspent=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_shadow_setspent" >&5 +echo "${ECHO_T}$ac_cv_lib_shadow_setspent" >&6; } +if test $ac_cv_lib_shadow_setspent = yes; then + result=yes +else + result=no +fi + +if test "$result" = "yes"; then + LIBS="$LIBS -lshadow" + SHADOW_PASSWORD=1 + LIBSHADOW=1 +else + { echo "$as_me:$LINENO: checking for getspnam in -lshadow" >&5 +echo $ECHO_N "checking for getspnam in -lshadow... $ECHO_C" >&6; } +if test "${ac_cv_lib_shadow_getspnam+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lshadow $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char getspnam (); +int +main () +{ +return getspnam (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_shadow_getspnam=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_shadow_getspnam=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_shadow_getspnam" >&5 +echo "${ECHO_T}$ac_cv_lib_shadow_getspnam" >&6; } +if test $ac_cv_lib_shadow_getspnam = yes; then + result=yes +else + result=no +fi + + if test "$result" = "yes"; then + LIBS="$LIBS -lshadow" + SHADOW_PASSWORD=1 + LIBSHADOW=1 + else + # some libc's (glibc 2.x) keep shadow functions in -lc + { echo "$as_me:$LINENO: checking for setspent in -lc" >&5 +echo $ECHO_N "checking for setspent in -lc... $ECHO_C" >&6; } +if test "${ac_cv_lib_c_setspent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lc $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char setspent (); +int +main () +{ +return setspent (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_c_setspent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_c_setspent=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_c_setspent" >&5 +echo "${ECHO_T}$ac_cv_lib_c_setspent" >&6; } +if test $ac_cv_lib_c_setspent = yes; then + result=yes +else + result=no +fi + + if test "$result" = "yes"; then + if test -f /etc/shadow; then + SHADOW_PASSWORD=1 + fi + fi + fi +fi + +if test "$SHADOW_PASSWORD" = "1"; then + if test "$ac_cv_func_fgetspent" != "yes"; then + { echo "$as_me:$LINENO: checking for fgetspent in -lshadow" >&5 +echo $ECHO_N "checking for fgetspent in -lshadow... $ECHO_C" >&6; } +if test "${ac_cv_lib_shadow_fgetspent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lshadow $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fgetspent (); +int +main () +{ +return fgetspent (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_shadow_fgetspent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_shadow_fgetspent=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_shadow_fgetspent" >&5 +echo "${ECHO_T}$ac_cv_lib_shadow_fgetspent" >&6; } +if test $ac_cv_lib_shadow_fgetspent = yes; then + result=yes +else + result=no +fi + + if test "$result" = "yes"; then + if test "$LIBSHADOW" != "1"; then + LIBS="$LIBS -lshadow" + fi + fi + fi + cat >>confdefs.h <<\_ACEOF +#define SHADOW_PASSWORD 1 +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5 +echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6; } +if test "${ac_cv_lib_crypt_crypt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypt $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char crypt (); +int +main () +{ +return crypt (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_crypt_crypt=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_crypt_crypt=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5 +echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6; } +if test $ac_cv_lib_crypt_crypt = yes; then + result=yes +else + result=no +fi + +if test "$result" = "yes"; then + LIBS="$LIBS -lcrypt" +fi + +{ echo "$as_me:$LINENO: checking for login in -lutil" >&5 +echo $ECHO_N "checking for login in -lutil... $ECHO_C" >&6; } +if test "${ac_cv_lib_util_login+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lutil $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char login (); +int +main () +{ +return login (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_util_login=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_util_login=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_util_login" >&5 +echo "${ECHO_T}$ac_cv_lib_util_login" >&6; } +if test $ac_cv_lib_util_login = yes; then + result=yes +else + result=no +fi + +if test "$result" = "yes"; then + LIBS="$LIBS -lutil" + +for ac_header in util.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in libutil.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in sys/types.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +fi + + +# +# Support for zlib and bzlib transfers compression +# +ZLIBSUP=No +{ echo "$as_me:$LINENO: checking for compress2 in -lz" >&5 +echo $ECHO_N "checking for compress2 in -lz... $ECHO_C" >&6; } +if test "${ac_cv_lib_z_compress2+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char compress2 (); +int +main () +{ +return compress2 (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_z_compress2=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_z_compress2=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_z_compress2" >&5 +echo "${ECHO_T}$ac_cv_lib_z_compress2" >&6; } +if test $ac_cv_lib_z_compress2 = yes; then + result=yes +else + result=no +fi + +if test "$result" = "yes"; then + LIBS="$LIBS -lz" + +for ac_header in zlib.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + ZLIBSUP=Yes +else + ZLIBSUP=No +fi + +done + +fi +BZLIBSUP=No +{ echo "$as_me:$LINENO: checking for BZ2_bzCompressInit in -lbz2" >&5 +echo $ECHO_N "checking for BZ2_bzCompressInit in -lbz2... $ECHO_C" >&6; } +if test "${ac_cv_lib_bz2_BZ2_bzCompressInit+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbz2 $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char BZ2_bzCompressInit (); +int +main () +{ +return BZ2_bzCompressInit (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_bz2_BZ2_bzCompressInit=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_bz2_BZ2_bzCompressInit=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_bz2_BZ2_bzCompressInit" >&5 +echo "${ECHO_T}$ac_cv_lib_bz2_BZ2_bzCompressInit" >&6; } +if test $ac_cv_lib_bz2_BZ2_bzCompressInit = yes; then + result=yes +else + result=no +fi + +if test "$result" = "yes"; then + LIBS="$LIBS -lbz2" + +for ac_header in bzlib.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + BZLIBSUP=Yes +else + BZLIBSUP=No +fi + +done + +fi + +# +# Support for iconv, check libc first. +# +result="no" +{ echo "$as_me:$LINENO: checking for iconv_open" >&5 +echo $ECHO_N "checking for iconv_open... $ECHO_C" >&6; } +if test "${ac_cv_func_iconv_open+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define iconv_open to an innocuous variant, in case declares iconv_open. + For example, HP-UX 11i declares gettimeofday. */ +#define iconv_open innocuous_iconv_open + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char iconv_open (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef iconv_open + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char iconv_open (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_iconv_open || defined __stub___iconv_open +choke me +#endif + +int +main () +{ +return iconv_open (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_iconv_open=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_iconv_open=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_iconv_open" >&5 +echo "${ECHO_T}$ac_cv_func_iconv_open" >&6; } +if test $ac_cv_func_iconv_open = yes; then + result=yes +else + # AC_SEARCH_LIBS(iconv_open,iconv,result=yes,result=no) + { echo "$as_me:$LINENO: checking for iconv_open in -liconv" >&5 +echo $ECHO_N "checking for iconv_open in -liconv... $ECHO_C" >&6; } +if test "${ac_cv_lib_iconv_iconv_open+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-liconv $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char iconv_open (); +int +main () +{ +return iconv_open (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_iconv_iconv_open=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_iconv_iconv_open=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv_open" >&5 +echo "${ECHO_T}$ac_cv_lib_iconv_iconv_open" >&6; } +if test $ac_cv_lib_iconv_iconv_open = yes; then + result=yes +else + result=no +fi + + if test "$result" = "yes"; then + LIBS="$LIBS -liconv" + fi + +fi + +if test "$result" = "yes"; then + +for ac_header in iconv.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +fi + +# +# Checks for header files. +# +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + + + + + + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do + as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 +echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include <$ac_hdr> + +int +main () +{ +if ((DIR *) 0) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +_ACEOF + +ac_header_dirent=$ac_hdr; break +fi + +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then + { echo "$as_me:$LINENO: checking for library containing opendir" >&5 +echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } +if test "${ac_cv_search_opendir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); +int +main () +{ +return opendir (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dir; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_search_opendir=$ac_res +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_opendir+set}" = set; then + break +fi +done +if test "${ac_cv_search_opendir+set}" = set; then + : +else + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +echo "${ECHO_T}$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +else + { echo "$as_me:$LINENO: checking for library containing opendir" >&5 +echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } +if test "${ac_cv_search_opendir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (); +int +main () +{ +return opendir (); + ; + return 0; +} +_ACEOF +for ac_lib in '' x; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_search_opendir=$ac_res +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_opendir+set}" = set; then + break +fi +done +if test "${ac_cv_search_opendir+set}" = set; then + : +else + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +echo "${ECHO_T}$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +fi + +{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 +echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; } +if test "${ac_cv_header_time+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include + +int +main () +{ +if ((struct tm *) 0) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_time=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_time=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 +echo "${ECHO_T}$ac_cv_header_time" >&6; } +if test $ac_cv_header_time = yes; then + +cat >>confdefs.h <<\_ACEOF +#define TIME_WITH_SYS_TIME 1 +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6; } +if test "${ac_cv_header_sys_wait_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#ifndef WEXITSTATUS +# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) +#endif +#ifndef WIFEXITED +# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) +#endif + +int +main () +{ + int s; + wait (&s); + s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_sys_wait_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_sys_wait_h=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; } +if test $ac_cv_header_sys_wait_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SYS_WAIT_H 1 +_ACEOF + +fi + + + + + + +for ac_header in termios.h sys/termios.h termio.h sys/termio.h sgtty.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + +for ac_header in sys/time.h sys/vfs.h unistd.h netinet/in.h regex.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + +for ac_header in sys/resource.h usersec.h gshadow.h shadow.h crypt.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + +for ac_header in limits.h utmp.h utmpx.h lastlog.h rpc/key_prot.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +{ echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 +echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6; } +if test "${ac_cv_struct_tm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +struct tm tm; + int *p = &tm.tm_sec; + return !p; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_struct_tm=time.h +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_struct_tm=sys/time.h +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 +echo "${ECHO_T}$ac_cv_struct_tm" >&6; } +if test $ac_cv_struct_tm = sys/time.h; then + +cat >>confdefs.h <<\_ACEOF +#define TM_IN_SYS_TIME 1 +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5 +echo $ECHO_N "checking for struct tm.tm_zone... $ECHO_C" >&6; } +if test "${ac_cv_member_struct_tm_tm_zone+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include <$ac_cv_struct_tm> + + +int +main () +{ +static struct tm ac_aggr; +if (ac_aggr.tm_zone) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_member_struct_tm_tm_zone=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include <$ac_cv_struct_tm> + + +int +main () +{ +static struct tm ac_aggr; +if (sizeof ac_aggr.tm_zone) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_member_struct_tm_tm_zone=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_member_struct_tm_tm_zone=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 +echo "${ECHO_T}$ac_cv_member_struct_tm_tm_zone" >&6; } +if test $ac_cv_member_struct_tm_tm_zone = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TM_TM_ZONE 1 +_ACEOF + + +fi + +if test "$ac_cv_member_struct_tm_tm_zone" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_TM_ZONE 1 +_ACEOF + +else + { echo "$as_me:$LINENO: checking whether tzname is declared" >&5 +echo $ECHO_N "checking whether tzname is declared... $ECHO_C" >&6; } +if test "${ac_cv_have_decl_tzname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef tzname + (void) tzname; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl_tzname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl_tzname=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_tzname" >&5 +echo "${ECHO_T}$ac_cv_have_decl_tzname" >&6; } +if test $ac_cv_have_decl_tzname = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TZNAME 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TZNAME 0 +_ACEOF + + +fi + + + { echo "$as_me:$LINENO: checking for tzname" >&5 +echo $ECHO_N "checking for tzname... $ECHO_C" >&6; } +if test "${ac_cv_var_tzname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#if !HAVE_DECL_TZNAME +extern char *tzname[]; +#endif + +int +main () +{ +return tzname[0][0]; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_var_tzname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_var_tzname=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 +echo "${ECHO_T}$ac_cv_var_tzname" >&6; } + if test $ac_cv_var_tzname = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_TZNAME 1 +_ACEOF + + fi +fi + + +# +# Checks for typedefs, structures, and compiler characteristics. +# +{ echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 +echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } +if test "${ac_cv_c_const+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +/* FIXME: Include the comments suggested by Paul. */ +#ifndef __cplusplus + /* Ultrix mips cc rejects this. */ + typedef int charset[2]; + const charset cs; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; }; + struct s *b; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_const=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_c_const=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 +echo "${ECHO_T}$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +cat >>confdefs.h <<\_ACEOF +#define const +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 +echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6; } +if test "${ac_cv_type_uid_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "uid_t" >/dev/null 2>&1; then + ac_cv_type_uid_t=yes +else + ac_cv_type_uid_t=no +fi +rm -f conftest* + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 +echo "${ECHO_T}$ac_cv_type_uid_t" >&6; } +if test $ac_cv_type_uid_t = no; then + +cat >>confdefs.h <<\_ACEOF +#define uid_t int +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define gid_t int +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for off_t" >&5 +echo $ECHO_N "checking for off_t... $ECHO_C" >&6; } +if test "${ac_cv_type_off_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef off_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_off_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_off_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 +echo "${ECHO_T}$ac_cv_type_off_t" >&6; } +if test $ac_cv_type_off_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define off_t long int +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for pid_t" >&5 +echo $ECHO_N "checking for pid_t... $ECHO_C" >&6; } +if test "${ac_cv_type_pid_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef pid_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_pid_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_pid_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 +echo "${ECHO_T}$ac_cv_type_pid_t" >&6; } +if test $ac_cv_type_pid_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define pid_t int +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for mode_t" >&5 +echo $ECHO_N "checking for mode_t... $ECHO_C" >&6; } +if test "${ac_cv_type_mode_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef mode_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_mode_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_mode_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 +echo "${ECHO_T}$ac_cv_type_mode_t" >&6; } +if test $ac_cv_type_mode_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define mode_t int +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for size_t" >&5 +echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } +if test "${ac_cv_type_size_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef size_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_size_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_size_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 +echo "${ECHO_T}$ac_cv_type_size_t" >&6; } +if test $ac_cv_type_size_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned int +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for ssize_t" >&5 +echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6; } +if test "${ac_cv_type_ssize_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef ssize_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_ssize_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_ssize_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 +echo "${ECHO_T}$ac_cv_type_ssize_t" >&6; } +if test $ac_cv_type_ssize_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define ssize_t int +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5 +echo $ECHO_N "checking for struct stat.st_blksize... $ECHO_C" >&6; } +if test "${ac_cv_member_struct_stat_st_blksize+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static struct stat ac_aggr; +if (ac_aggr.st_blksize) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_member_struct_stat_st_blksize=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static struct stat ac_aggr; +if (sizeof ac_aggr.st_blksize) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_member_struct_stat_st_blksize=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_member_struct_stat_st_blksize=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5 +echo "${ECHO_T}$ac_cv_member_struct_stat_st_blksize" >&6; } +if test $ac_cv_member_struct_stat_st_blksize = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ST_BLKSIZE 1 +_ACEOF + +fi + + +{ echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 +echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6; } +if test "${ac_cv_header_stat_broken+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +#if defined S_ISBLK && defined S_IFDIR +extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; +#endif + +#if defined S_ISBLK && defined S_IFCHR +extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; +#endif + +#if defined S_ISLNK && defined S_IFREG +extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; +#endif + +#if defined S_ISSOCK && defined S_IFREG +extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; +#endif + +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stat_broken=no +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stat_broken=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 +echo "${ECHO_T}$ac_cv_header_stat_broken" >&6; } +if test $ac_cv_header_stat_broken = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STAT_MACROS_BROKEN 1 +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 +echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6; } +if test "${ac_cv_struct_tm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +struct tm tm; + int *p = &tm.tm_sec; + return !p; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_struct_tm=time.h +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_struct_tm=sys/time.h +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 +echo "${ECHO_T}$ac_cv_struct_tm" >&6; } +if test $ac_cv_struct_tm = sys/time.h; then + +cat >>confdefs.h <<\_ACEOF +#define TM_IN_SYS_TIME 1 +_ACEOF + +fi + + +# +# Checks for library functions. +# + + + + + + + + + +for ac_func in c64i a64l fchmod fchown fdatasync fsync lckpwdf strcasestr putpwent +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +if test $ac_cv_c_compiler_gnu = yes; then + { echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 +echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6; } +if test "${ac_cv_prog_gcc_traditional+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_pattern="Autoconf.*'x'" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +Autoconf TIOCGETP +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "$ac_pattern" >/dev/null 2>&1; then + ac_cv_prog_gcc_traditional=yes +else + ac_cv_prog_gcc_traditional=no +fi +rm -f conftest* + + + if test $ac_cv_prog_gcc_traditional = no; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +Autoconf TCGETA +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "$ac_pattern" >/dev/null 2>&1; then + ac_cv_prog_gcc_traditional=yes +fi +rm -f conftest* + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 +echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6; } + if test $ac_cv_prog_gcc_traditional = yes; then + CC="$CC -traditional" + fi +fi + +{ echo "$as_me:$LINENO: checking for working memcmp" >&5 +echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6; } +if test "${ac_cv_func_memcmp_working+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_memcmp_working=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Some versions of memcmp are not 8-bit clean. */ + char c0 = '\100', c1 = '\200', c2 = '\201'; + if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) + return 1; + + /* The Next x86 OpenStep bug shows up only when comparing 16 bytes + or more and with at least one buffer not starting on a 4-byte boundary. + William Lewis provided this test program. */ + { + char foo[21]; + char bar[21]; + int i; + for (i = 0; i < 4; i++) + { + char *a = foo + i; + char *b = bar + i; + strcpy (a, "--------01111111"); + strcpy (b, "--------10000000"); + if (memcmp (a, b, 16) >= 0) + return 1; + } + return 0; + } + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_memcmp_working=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_memcmp_working=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5 +echo "${ECHO_T}$ac_cv_func_memcmp_working" >&6; } +test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in + *" memcmp.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" + ;; +esac + + +{ echo "$as_me:$LINENO: checking return type of signal handlers" >&5 +echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; } +if test "${ac_cv_type_signal+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +return *(signal (0, 0)) (0) == 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_signal=int +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_signal=void +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 +echo "${ECHO_T}$ac_cv_type_signal" >&6; } + +cat >>confdefs.h <<_ACEOF +#define RETSIGTYPE $ac_cv_type_signal +_ACEOF + + + + + + +for ac_header in $ac_header_list +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + + + + +{ echo "$as_me:$LINENO: checking whether utime accepts a null argument" >&5 +echo $ECHO_N "checking whether utime accepts a null argument... $ECHO_C" >&6; } +if test "${ac_cv_func_utime_null+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + rm -f conftest.data; >conftest.data +# Sequent interprets utime(file, 0) to mean use start of epoch. Wrong. +if test "$cross_compiling" = yes; then + ac_cv_func_utime_null=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + #ifdef HAVE_UTIME_H + # include + #endif +int +main () +{ +struct stat s, t; + return ! (stat ("conftest.data", &s) == 0 + && utime ("conftest.data", 0) == 0 + && stat ("conftest.data", &t) == 0 + && t.st_mtime >= s.st_mtime + && t.st_mtime - s.st_mtime < 120); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_utime_null=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_utime_null=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_utime_null" >&5 +echo "${ECHO_T}$ac_cv_func_utime_null" >&6; } +if test $ac_cv_func_utime_null = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_UTIME_NULL 1 +_ACEOF + +fi +rm -f conftest.data + + + + + + +for ac_func in gettimeofday re_comp select statfs statvfs +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + + + +for ac_func in getspnam initgroups updwtmp updwtmpx +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +# +# Check for usefull external programs +# +# Extract the first word of "compress", so it can be a program name with args. +set dummy compress; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_COMPRESS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $COMPRESS in + [\\/]* | ?:[\\/]*) + ac_cv_path_COMPRESS="$COMPRESS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_COMPRESS="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_COMPRESS" && ac_cv_path_COMPRESS="no-compress-found-during-configure" + ;; +esac +fi +COMPRESS=$ac_cv_path_COMPRESS +if test -n "$COMPRESS"; then + { echo "$as_me:$LINENO: result: $COMPRESS" >&5 +echo "${ECHO_T}$COMPRESS" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "gzip", so it can be a program name with args. +set dummy gzip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_GZIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GZIP in + [\\/]* | ?:[\\/]*) + ac_cv_path_GZIP="$GZIP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GZIP="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GZIP" && ac_cv_path_GZIP="no-gzip-found-during-configure" + ;; +esac +fi +GZIP=$ac_cv_path_GZIP +if test -n "$GZIP"; then + { echo "$as_me:$LINENO: result: $GZIP" >&5 +echo "${ECHO_T}$GZIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "arc", so it can be a program name with args. +set dummy arc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_ARC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $ARC in + [\\/]* | ?:[\\/]*) + ac_cv_path_ARC="$ARC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ARC="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +ARC=$ac_cv_path_ARC +if test -n "$ARC"; then + { echo "$as_me:$LINENO: result: $ARC" >&5 +echo "${ECHO_T}$ARC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "nomarch", so it can be a program name with args. +set dummy nomarch; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_NOMARCH+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $NOMARCH in + [\\/]* | ?:[\\/]*) + ac_cv_path_NOMARCH="$NOMARCH" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_NOMARCH="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +NOMARCH=$ac_cv_path_NOMARCH +if test -n "$NOMARCH"; then + { echo "$as_me:$LINENO: result: $NOMARCH" >&5 +echo "${ECHO_T}$NOMARCH" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "arj", so it can be a program name with args. +set dummy arj; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_ARJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $ARJ in + [\\/]* | ?:[\\/]*) + ac_cv_path_ARJ="$ARJ" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ARJ="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +ARJ=$ac_cv_path_ARJ +if test -n "$ARJ"; then + { echo "$as_me:$LINENO: result: $ARJ" >&5 +echo "${ECHO_T}$ARJ" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "unarj", so it can be a program name with args. +set dummy unarj; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_UNARJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $UNARJ in + [\\/]* | ?:[\\/]*) + ac_cv_path_UNARJ="$UNARJ" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_UNARJ="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +UNARJ=$ac_cv_path_UNARJ +if test -n "$UNARJ"; then + { echo "$as_me:$LINENO: result: $UNARJ" >&5 +echo "${ECHO_T}$UNARJ" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "lha", so it can be a program name with args. +set dummy lha; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_LHA+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $LHA in + [\\/]* | ?:[\\/]*) + ac_cv_path_LHA="$LHA" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_LHA="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +LHA=$ac_cv_path_LHA +if test -n "$LHA"; then + { echo "$as_me:$LINENO: result: $LHA" >&5 +echo "${ECHO_T}$LHA" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "rar", so it can be a program name with args. +set dummy rar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_RAR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $RAR in + [\\/]* | ?:[\\/]*) + ac_cv_path_RAR="$RAR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_RAR="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +RAR=$ac_cv_path_RAR +if test -n "$RAR"; then + { echo "$as_me:$LINENO: result: $RAR" >&5 +echo "${ECHO_T}$RAR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "unrar", so it can be a program name with args. +set dummy unrar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_UNRAR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $UNRAR in + [\\/]* | ?:[\\/]*) + ac_cv_path_UNRAR="$UNRAR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_UNRAR="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +UNRAR=$ac_cv_path_UNRAR +if test -n "$UNRAR"; then + { echo "$as_me:$LINENO: result: $UNRAR" >&5 +echo "${ECHO_T}$UNRAR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "tar", so it can be a program name with args. +set dummy tar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_TAR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $TAR in + [\\/]* | ?:[\\/]*) + ac_cv_path_TAR="$TAR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +TAR=$ac_cv_path_TAR +if test -n "$TAR"; then + { echo "$as_me:$LINENO: result: $TAR" >&5 +echo "${ECHO_T}$TAR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "zip", so it can be a program name with args. +set dummy zip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_ZIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $ZIP in + [\\/]* | ?:[\\/]*) + ac_cv_path_ZIP="$ZIP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ZIP="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +ZIP=$ac_cv_path_ZIP +if test -n "$ZIP"; then + { echo "$as_me:$LINENO: result: $ZIP" >&5 +echo "${ECHO_T}$ZIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "unzip", so it can be a program name with args. +set dummy unzip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_UNZIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $UNZIP in + [\\/]* | ?:[\\/]*) + ac_cv_path_UNZIP="$UNZIP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_UNZIP="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +UNZIP=$ac_cv_path_UNZIP +if test -n "$UNZIP"; then + { echo "$as_me:$LINENO: result: $UNZIP" >&5 +echo "${ECHO_T}$UNZIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "zoo", so it can be a program name with args. +set dummy zoo; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_ZOO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $ZOO in + [\\/]* | ?:[\\/]*) + ac_cv_path_ZOO="$ZOO" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ZOO="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +ZOO=$ac_cv_path_ZOO +if test -n "$ZOO"; then + { echo "$as_me:$LINENO: result: $ZOO" >&5 +echo "${ECHO_T}$ZOO" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "ha", so it can be a program name with args. +set dummy ha; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_HA+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $HA in + [\\/]* | ?:[\\/]*) + ac_cv_path_HA="$HA" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_HA="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +HA=$ac_cv_path_HA +if test -n "$HA"; then + { echo "$as_me:$LINENO: result: $HA" >&5 +echo "${ECHO_T}$HA" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "antivir", so it can be a program name with args. +set dummy antivir; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_ANTIVIR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $ANTIVIR in + [\\/]* | ?:[\\/]*) + ac_cv_path_ANTIVIR="$ANTIVIR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ANTIVIR="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +ANTIVIR=$ac_cv_path_ANTIVIR +if test -n "$ANTIVIR"; then + { echo "$as_me:$LINENO: result: $ANTIVIR" >&5 +echo "${ECHO_T}$ANTIVIR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "fpscan", so it can be a program name with args. +set dummy fpscan; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_FPROT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $FPROT in + [\\/]* | ?:[\\/]*) + ac_cv_path_FPROT="$FPROT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_FPROT="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +FPROT=$ac_cv_path_FPROT +if test -n "$FPROT"; then + { echo "$as_me:$LINENO: result: $FPROT" >&5 +echo "${ECHO_T}$FPROT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "uvscan", so it can be a program name with args. +set dummy uvscan; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_UVSCAN+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $UVSCAN in + [\\/]* | ?:[\\/]*) + ac_cv_path_UVSCAN="$UVSCAN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_UVSCAN="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +UVSCAN=$ac_cv_path_UVSCAN +if test -n "$UVSCAN"; then + { echo "$as_me:$LINENO: result: $UVSCAN" >&5 +echo "${ECHO_T}$UVSCAN" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "clamscan", so it can be a program name with args. +set dummy clamscan; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_CLAMAV+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $CLAMAV in + [\\/]* | ?:[\\/]*) + ac_cv_path_CLAMAV="$CLAMAV" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_CLAMAV="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +CLAMAV=$ac_cv_path_CLAMAV +if test -n "$CLAMAV"; then + { echo "$as_me:$LINENO: result: $CLAMAV" >&5 +echo "${ECHO_T}$CLAMAV" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "rb", so it can be a program name with args. +set dummy rb; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_RB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $RB in + [\\/]* | ?:[\\/]*) + ac_cv_path_RB="$RB" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_RB="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +RB=$ac_cv_path_RB +if test -n "$RB"; then + { echo "$as_me:$LINENO: result: $RB" >&5 +echo "${ECHO_T}$RB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "lrb", so it can be a program name with args. +set dummy lrb; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_RB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $RB in + [\\/]* | ?:[\\/]*) + ac_cv_path_RB="$RB" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_RB="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +RB=$ac_cv_path_RB +if test -n "$RB"; then + { echo "$as_me:$LINENO: result: $RB" >&5 +echo "${ECHO_T}$RB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "sb", so it can be a program name with args. +set dummy sb; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_SB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $SB in + [\\/]* | ?:[\\/]*) + ac_cv_path_SB="$SB" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_SB="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +SB=$ac_cv_path_SB +if test -n "$SB"; then + { echo "$as_me:$LINENO: result: $SB" >&5 +echo "${ECHO_T}$SB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "lsb", so it can be a program name with args. +set dummy lsb; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_SB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $SB in + [\\/]* | ?:[\\/]*) + ac_cv_path_SB="$SB" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_SB="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +SB=$ac_cv_path_SB +if test -n "$SB"; then + { echo "$as_me:$LINENO: result: $SB" >&5 +echo "${ECHO_T}$SB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "rz", so it can be a program name with args. +set dummy rz; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_RZ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $RZ in + [\\/]* | ?:[\\/]*) + ac_cv_path_RZ="$RZ" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_RZ="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +RZ=$ac_cv_path_RZ +if test -n "$RZ"; then + { echo "$as_me:$LINENO: result: $RZ" >&5 +echo "${ECHO_T}$RZ" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "lrz", so it can be a program name with args. +set dummy lrz; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_RZ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $RZ in + [\\/]* | ?:[\\/]*) + ac_cv_path_RZ="$RZ" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_RZ="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +RZ=$ac_cv_path_RZ +if test -n "$RZ"; then + { echo "$as_me:$LINENO: result: $RZ" >&5 +echo "${ECHO_T}$RZ" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "sz", so it can be a program name with args. +set dummy sz; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_SZ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $SZ in + [\\/]* | ?:[\\/]*) + ac_cv_path_SZ="$SZ" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_SZ="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +SZ=$ac_cv_path_SZ +if test -n "$SZ"; then + { echo "$as_me:$LINENO: result: $SZ" >&5 +echo "${ECHO_T}$SZ" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "lsz", so it can be a program name with args. +set dummy lsz; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_SZ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $SZ in + [\\/]* | ?:[\\/]*) + ac_cv_path_SZ="$SZ" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_SZ="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +SZ=$ac_cv_path_SZ +if test -n "$SZ"; then + { echo "$as_me:$LINENO: result: $SZ" >&5 +echo "${ECHO_T}$SZ" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "golded", so it can be a program name with args. +set dummy golded; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_GOLDEDBIN+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GOLDEDBIN in + [\\/]* | ?:[\\/]*) + ac_cv_path_GOLDEDBIN="$GOLDEDBIN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GOLDEDBIN="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +GOLDEDBIN=$ac_cv_path_GOLDEDBIN +if test -n "$GOLDEDBIN"; then + { echo "$as_me:$LINENO: result: $GOLDEDBIN" >&5 +echo "${ECHO_T}$GOLDEDBIN" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "gedlnx", so it can be a program name with args. +set dummy gedlnx; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_GOLDEDBIN+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GOLDEDBIN in + [\\/]* | ?:[\\/]*) + ac_cv_path_GOLDEDBIN="$GOLDEDBIN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GOLDEDBIN="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +GOLDEDBIN=$ac_cv_path_GOLDEDBIN +if test -n "$GOLDEDBIN"; then + { echo "$as_me:$LINENO: result: $GOLDEDBIN" >&5 +echo "${ECHO_T}$GOLDEDBIN" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "goldnode", so it can be a program name with args. +set dummy goldnode; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_GOLDNODE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GOLDNODE in + [\\/]* | ?:[\\/]*) + ac_cv_path_GOLDNODE="$GOLDNODE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GOLDNODE="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +GOLDNODE=$ac_cv_path_GOLDNODE +if test -n "$GOLDNODE"; then + { echo "$as_me:$LINENO: result: $GOLDNODE" >&5 +echo "${ECHO_T}$GOLDNODE" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "gnlnx", so it can be a program name with args. +set dummy gnlnx; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_GOLDNODE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GOLDNODE in + [\\/]* | ?:[\\/]*) + ac_cv_path_GOLDNODE="$GOLDNODE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GOLDNODE="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +GOLDNODE=$ac_cv_path_GOLDNODE +if test -n "$GOLDNODE"; then + { echo "$as_me:$LINENO: result: $GOLDNODE" >&5 +echo "${ECHO_T}$GOLDNODE" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +# Extract the first word of "convert", so it can be a program name with args. +set dummy convert; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_CONVERT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $CONVERT in + [\\/]* | ?:[\\/]*) + ac_cv_path_CONVERT="$CONVERT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_CONVERT="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +CONVERT=$ac_cv_path_CONVERT +if test -n "$CONVERT"; then + { echo "$as_me:$LINENO: result: $CONVERT" >&5 +echo "${ECHO_T}$CONVERT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + + +# +# Check for GeoIP support, see http://www.maxmind.com/ +# +GEOIPSUP=No +{ echo "$as_me:$LINENO: checking for GeoIP_new in -lGeoIP" >&5 +echo $ECHO_N "checking for GeoIP_new in -lGeoIP... $ECHO_C" >&6; } +if test "${ac_cv_lib_GeoIP_GeoIP_new+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lGeoIP $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char GeoIP_new (); +int +main () +{ +return GeoIP_new (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_GeoIP_GeoIP_new=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_GeoIP_GeoIP_new=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_GeoIP_GeoIP_new" >&5 +echo "${ECHO_T}$ac_cv_lib_GeoIP_GeoIP_new" >&6; } +if test $ac_cv_lib_GeoIP_GeoIP_new = yes; then + result=yes +else + result=no +fi + +if test "$result" = "yes"; then + LIBS="$LIBS -lGeoIP" + + +for ac_header in GeoIP.h GeoIPCity.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + GEOIPSUP=Yes +else + GEOIPSUP=No +fi + +done + +fi + + +# +# FIX DEL for Del!=207, this was default upto 207 or 126 if no argument +# +# Check whether --enable-gbkdel was given. +if test "${enable_gbkdel+set}" = set; then + enableval=$enable_gbkdel; gbkdel=$enableval +else + gbkdel=no +fi + +if test "$gbkdel" = "yes"; then + GBK_DEL=126 + DEL=$GBK_DEL + echo "checking delete key... changed into $DEL" +else + DEL="default" + GBK_DEL=0 + echo "checking delete key... default" +fi +cat >>confdefs.h <<_ACEOF +#define GBK_DEL $GBK_DEL +_ACEOF + + + +{ echo "$as_me:$LINENO: checking location of joe editor" >&5 +echo $ECHO_N "checking location of joe editor... $ECHO_C" >&6; } +for joebin in /usr/bin /usr/local/bin /usr/pkg/bin NONE; do + if test "$joebin" = "NONE"; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + elif test -x $joebin/joe; then + + { echo "$as_me:$LINENO: result: $joebin" >&5 +echo "${ECHO_T}$joebin" >&6; } + break + fi +done +{ echo "$as_me:$LINENO: checking location of joe rc files" >&5 +echo $ECHO_N "checking location of joe rc files... $ECHO_C" >&6; } +for joelib in /etc/joe /usr/lib/joe /usr/local/etc /usr/local/etc/joe /usr/local/lib/joe /usr/local/lib /usr/pkg/lib /usr/pkg/etc NONE; do + if test "$joelib" = "NONE"; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + elif test -f $joelib/joerc; then + + { echo "$as_me:$LINENO: result: $joelib" >&5 +echo "${ECHO_T}$joelib" >&6; } + break + fi +done + +{ echo "$as_me:$LINENO: checking location of utmp" >&5 +echo $ECHO_N "checking location of utmp... $ECHO_C" >&6; } +for utmpdir in /var/run /var/adm /usr/adm /etc NONE; do + if test "$utmpdir" = "NONE"; then + { echo "$as_me:$LINENO: WARNING: utmp file not found" >&5 +echo "$as_me: WARNING: utmp file not found" >&2;} + elif test -f $utmpdir/utmp; then + cat >>confdefs.h <<_ACEOF +#define _UTMP_FILE "$utmpdir/utmp" +_ACEOF + + { echo "$as_me:$LINENO: result: $utmpdir" >&5 +echo "${ECHO_T}$utmpdir" >&6; } + break + fi +done + +{ echo "$as_me:$LINENO: checking location of lastlog/wtmp" >&5 +echo $ECHO_N "checking location of lastlog/wtmp... $ECHO_C" >&6; } +for logdir in /var/log /var/adm /usr/adm /etc; do + if test -d $logdir; then + cat >>confdefs.h <<_ACEOF +#define _WTMP_FILE "$logdir/wtmp" +_ACEOF + + cat >>confdefs.h <<_ACEOF +#define LASTLOG_FILE "$logdir/lastlog" +_ACEOF + + { echo "$as_me:$LINENO: result: $logdir" >&5 +echo "${ECHO_T}$logdir" >&6; } + break + fi +done + +{ echo "$as_me:$LINENO: checking location of vpopmail" >&5 +echo $ECHO_N "checking location of vpopmail... $ECHO_C" >&6; } +for vpop in /var/qmail/vpopmail/bin NONE; do + if test "$vpop" = "NONE"; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } + elif test -x $vpop/vadduser; then + cat >>confdefs.h <<_ACEOF +#define _VPOPMAIL_PATH "$vpop" +_ACEOF + + { echo "$as_me:$LINENO: result: $vpop" >&5 +echo "${ECHO_T}$vpop" >&6; } + break + fi +done + + +ac_config_files="$ac_config_files Makefile.global paths.h unix/login.defs INSTALL FILE_ID.DIZ script/editor html/index.htm html/basic.html html/upgrade.html" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { echo "$as_me:$LINENO: updating cache $cache_file" >&5 +echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 + +# Save the log message, to keep $[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by $as_me, which was +generated by GNU Autoconf 2.61. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +config.status +configured by $0, generated by GNU Autoconf 2.61, + with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2006 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + { echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + CONFIG_SHELL=$SHELL + export CONFIG_SHELL + exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +# +# INIT-COMMANDS +# + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; + "Makefile.global") CONFIG_FILES="$CONFIG_FILES Makefile.global" ;; + "paths.h") CONFIG_FILES="$CONFIG_FILES paths.h" ;; + "unix/login.defs") CONFIG_FILES="$CONFIG_FILES unix/login.defs" ;; + "INSTALL") CONFIG_FILES="$CONFIG_FILES INSTALL" ;; + "FILE_ID.DIZ") CONFIG_FILES="$CONFIG_FILES FILE_ID.DIZ" ;; + "script/editor") CONFIG_FILES="$CONFIG_FILES script/editor" ;; + "html/index.htm") CONFIG_FILES="$CONFIG_FILES html/index.htm" ;; + "html/basic.html") CONFIG_FILES="$CONFIG_FILES html/basic.html" ;; + "html/upgrade.html") CONFIG_FILES="$CONFIG_FILES html/upgrade.html" ;; + + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +# +# Set up the sed scripts for CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "$CONFIG_FILES"; then + +_ACEOF + + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +SHELL!$SHELL$ac_delim +PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim +PACKAGE_NAME!$PACKAGE_NAME$ac_delim +PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim +PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim +PACKAGE_STRING!$PACKAGE_STRING$ac_delim +PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim +exec_prefix!$exec_prefix$ac_delim +prefix!$prefix$ac_delim +program_transform_name!$program_transform_name$ac_delim +bindir!$bindir$ac_delim +sbindir!$sbindir$ac_delim +libexecdir!$libexecdir$ac_delim +datarootdir!$datarootdir$ac_delim +datadir!$datadir$ac_delim +sysconfdir!$sysconfdir$ac_delim +sharedstatedir!$sharedstatedir$ac_delim +localstatedir!$localstatedir$ac_delim +includedir!$includedir$ac_delim +oldincludedir!$oldincludedir$ac_delim +docdir!$docdir$ac_delim +infodir!$infodir$ac_delim +htmldir!$htmldir$ac_delim +dvidir!$dvidir$ac_delim +pdfdir!$pdfdir$ac_delim +psdir!$psdir$ac_delim +libdir!$libdir$ac_delim +localedir!$localedir$ac_delim +mandir!$mandir$ac_delim +DEFS!$DEFS$ac_delim +ECHO_C!$ECHO_C$ac_delim +ECHO_N!$ECHO_N$ac_delim +ECHO_T!$ECHO_T$ac_delim +LIBS!$LIBS$ac_delim +build_alias!$build_alias$ac_delim +host_alias!$host_alias$ac_delim +target_alias!$target_alias$ac_delim +SUBDIRS!$SUBDIRS$ac_delim +PACKAGE!$PACKAGE$ac_delim +MAJOR!$MAJOR$ac_delim +MINOR!$MINOR$ac_delim +REVISION!$REVISION$ac_delim +COPYRIGHT!$COPYRIGHT$ac_delim +GROUP!$GROUP$ac_delim +OWNER!$OWNER$ac_delim +ROWNER!$ROWNER$ac_delim +RGROUP!$RGROUP$ac_delim +VERSION!$VERSION$ac_delim +MAKE!$MAKE$ac_delim +AWK!$AWK$ac_delim +INSTALL!$INSTALL$ac_delim +CC!$CC$ac_delim +CFLAGS!$CFLAGS$ac_delim +LDFLAGS!$LDFLAGS$ac_delim +CPPFLAGS!$CPPFLAGS$ac_delim +ac_ct_CC!$ac_ct_CC$ac_delim +EXEEXT!$EXEEXT$ac_delim +OBJEXT!$OBJEXT$ac_delim +SET_MAKE!$SET_MAKE$ac_delim +RANLIB!$RANLIB$ac_delim +LN_S!$LN_S$ac_delim +TAR!$TAR$ac_delim +ZIP!$ZIP$ac_delim +CHOWN!$CHOWN$ac_delim +CPP!$CPP$ac_delim +GREP!$GREP$ac_delim +EGREP!$EGREP$ac_delim +LIBOBJS!$LIBOBJS$ac_delim +COMPRESS!$COMPRESS$ac_delim +GZIP!$GZIP$ac_delim +ARC!$ARC$ac_delim +NOMARCH!$NOMARCH$ac_delim +ARJ!$ARJ$ac_delim +UNARJ!$UNARJ$ac_delim +LHA!$LHA$ac_delim +RAR!$RAR$ac_delim +UNRAR!$UNRAR$ac_delim +UNZIP!$UNZIP$ac_delim +ZOO!$ZOO$ac_delim +HA!$HA$ac_delim +ANTIVIR!$ANTIVIR$ac_delim +FPROT!$FPROT$ac_delim +UVSCAN!$UVSCAN$ac_delim +CLAMAV!$CLAMAV$ac_delim +RB!$RB$ac_delim +SB!$SB$ac_delim +RZ!$RZ$ac_delim +SZ!$SZ$ac_delim +GOLDEDBIN!$GOLDEDBIN$ac_delim +GOLDNODE!$GOLDNODE$ac_delim +CONVERT!$CONVERT$ac_delim +joebin!$joebin$ac_delim +joelib!$joelib$ac_delim +LTLIBOBJS!$LTLIBOBJS$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 94; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +:end +s/|#_!!_#|//g +CEOF$ac_eof +_ACEOF + + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF +fi # test -n "$CONFIG_FILES" + + +for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 +echo "$as_me: error: Invalid tag $ac_tag." >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + ac_file_inputs="$ac_file_inputs $ac_f" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input="Generated from "`IFS=: + echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + fi + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin";; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +case `sed -n '/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' $ac_file_inputs` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s&@configure_input@&$configure_input&;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +$ac_datarootdir_hack +" $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out"; rm -f "$tmp/out";; + *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; + esac + ;; + :H) + # + # CONFIG_HEADER + # +_ACEOF + +# Transform confdefs.h into a sed script `conftest.defines', that +# substitutes the proper values into config.h.in to produce config.h. +rm -f conftest.defines conftest.tail +# First, append a space to every undef/define line, to ease matching. +echo 's/$/ /' >conftest.defines +# Then, protect against being on the right side of a sed subst, or in +# an unquoted here document, in config.status. If some macros were +# called several times there might be several #defines for the same +# symbol, which is useless. But do not sort them, since the last +# AC_DEFINE must be honored. +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where +# NAME is the cpp macro being defined, VALUE is the value it is being given. +# PARAMS is the parameter list in the macro definition--in most cases, it's +# just an empty string. +ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' +ac_dB='\\)[ (].*,\\1define\\2' +ac_dC=' ' +ac_dD=' ,' + +uniq confdefs.h | + sed -n ' + t rset + :rset + s/^[ ]*#[ ]*define[ ][ ]*// + t ok + d + :ok + s/[\\&,]/\\&/g + s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p + s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p + ' >>conftest.defines + +# Remove the space that was appended to ease matching. +# Then replace #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +# (The regexp can be short, since the line contains either #define or #undef.) +echo 's/ $// +s,^[ #]*u.*,/* & */,' >>conftest.defines + +# Break up conftest.defines: +ac_max_sed_lines=50 + +# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" +# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" +# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" +# et cetera. +ac_in='$ac_file_inputs' +ac_out='"$tmp/out1"' +ac_nxt='"$tmp/out2"' + +while : +do + # Write a here document: + cat >>$CONFIG_STATUS <<_ACEOF + # First, check the format of the line: + cat >"\$tmp/defines.sed" <<\\CEOF +/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def +/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def +b +:def +_ACEOF + sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS + echo 'CEOF + sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS + ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in + sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail + grep . conftest.tail >/dev/null || break + rm -f conftest.defines + mv conftest.tail conftest.defines +done +rm -f conftest.defines conftest.tail + +echo "ac_result=$ac_in" >>$CONFIG_STATUS +cat >>$CONFIG_STATUS <<\_ACEOF + if test x"$ac_file" != x-; then + echo "/* $configure_input */" >"$tmp/config.h" + cat "$ac_result" >>"$tmp/config.h" + if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f $ac_file + mv "$tmp/config.h" $ac_file + fi + else + echo "/* $configure_input */" + cat "$ac_result" + fi + rm -f "$tmp/out12" + ;; + + :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 +echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "default-1":C) test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h ;; + + esac +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + + +#================================================================================= + +{ echo "$as_me:$LINENO: result: +-=-=-=-=-=-=-=-=-=-= Configuration Complete =-=-=-=-=-=-=-=-=-=- + + Configuration summary : + + Version : ..................... ${VERSION} + Hydra/Binkp zlib compression : ${ZLIBSUP} + Binkp bzlib compression : ..... ${BZLIBSUP} + Full newsgate : ............... ${NEWSGATE} + GeoIP support : ............... ${GEOIPSUP} + Delete key : .................. ${DEL} + +" >&5 +echo "${ECHO_T} +-=-=-=-=-=-=-=-=-=-= Configuration Complete =-=-=-=-=-=-=-=-=-=- + + Configuration summary : + + Version : ..................... ${VERSION} + Hydra/Binkp zlib compression : ${ZLIBSUP} + Binkp bzlib compression : ..... ${BZLIBSUP} + Full newsgate : ............... ${NEWSGATE} + GeoIP support : ............... ${GEOIPSUP} + Delete key : .................. ${DEL} + +" >&6; } + +if test x$ac_cv_c_compiler_gnu = xyes ; then + echo -e " Tools :\n" + echo " Compiler is GCC : ............. ${ac_cv_c_compiler_gnu}" + fi + +{ echo "$as_me:$LINENO: result: + Installation directories : + + Main directory : ........... ${prefix} + Owner and group : ........... ${OWNER}.${GROUP} + + Now type 'make' and as root 'make install' +" >&5 +echo "${ECHO_T} + Installation directories : + + Main directory : ........... ${prefix} + Owner and group : ........... ${OWNER}.${GROUP} + + Now type 'make' and as root 'make install' +" >&6; } diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..d881d15f --- /dev/null +++ b/configure.ac @@ -0,0 +1,406 @@ +# Process this file with autoconf to produce a configure script. +# $Id: configure.ac,v 1.29 2008/11/29 13:59:33 mbse Exp $ + +AC_INIT(lib/mbselib.h) +AM_CONFIG_HEADER(config.h) +SUBDIRS="lib mbcico mbfido mbmon mbsebbs mbutils mbnntp mbtask mbsetup unix lang examples html script" +AC_SUBST(SUBDIRS) + +# +# General settings for MBSE BBS +# After changeing the version number, run autoconf! +# +PACKAGE="mbsebbs" +MAJOR="0" +MINOR="95" +REVISION="5" +VERSION="$MAJOR.$MINOR.$REVISION" +COPYRIGHT="Copyright (C) 1997-2008 Michiel Broek, All Rights Reserved" +SHORTRIGHT="Copyright (C) 1997-2008 M. Broek" +GROUP="bbs" +OWNER="mbse" +ROWNER="`id -un root`" +RGROUP="`id -gn root`" +AC_SUBST(PACKAGE) +AC_SUBST(MAJOR) +AC_SUBST(MINOR) +AC_SUBST(REVISION) +AC_SUBST(COPYRIGHT) +AC_SUBST(GROUP) +AC_SUBST(OWNER) +AC_SUBST(ROWNER) +AC_SUBST(RGROUP) +AC_PREFIX_DEFAULT(/opt/mbse) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION") +AC_DEFINE_UNQUOTED(VERSION_MAJOR, $MAJOR) +AC_DEFINE_UNQUOTED(VERSION_MINOR, $MINOR) +AC_DEFINE_UNQUOTED(VERSION_REVISION, $REVISION) +AC_DEFINE_UNQUOTED(COPYRIGHT, "$COPYRIGHT") +AC_DEFINE_UNQUOTED(SHORTRIGHT, "$SHORTRIGHT") +AC_SUBST(VERSION) +SYSTEM="`uname -s`" +CPU="`uname -m`" +LDFLAGS="-L/usr/local/lib" +CPPFLAGS="-I/usr/local/include" + +# +# Checks for programs. +# Try to find GNU make +# +AC_CHECK_PROG(MAKE, gmake, gmake) +AC_CHECK_PROG(MAKE, make, make) +# Alternate awk check, I skip mawk because it doesn't work for MBSE. +AC_CHECK_PROG(AWK, gawk, gawk) +AC_CHECK_PROG(AWK, nawk, nawk) +AC_CHECK_PROG(AWK, awk, awk) +# Try to find GNU install +AC_CHECK_PROG(INSTALL, ginstall, ginstall) +AC_CHECK_PROG(INSTALL, install, install) +AC_PROG_CC +AC_PROG_MAKE_SET +AC_PROG_RANLIB +AC_PROG_LN_S +AC_CHECK_PROG(TAR, tar, tar) +AC_CHECK_PROG(ZIP, zip, zip) +AC_PATH_PROG(CHOWN, chown, chown, /bin:/sbin:/usr/bin:/usr/sbin:) +AC_C_BIGENDIAN + + +# +# Additional commandline switches +# +AC_ARG_ENABLE(experiment, [ --enable-experiment Compile experimental code], [ experiment=$enableval ], [ experiment=no ]) +if test "$experiment" = "yes"; then + AC_DEFINE(USE_EXPERIMENT) +fi + +AC_ARG_ENABLE(debugging, [ --enable-debugging Compile for debugging], [ debugging=$enableval ], [ debugging=no ]) +if test "$debugging" = "yes"; then + CFLAGS="-O -g -Wall -Wshadow -Wwrite-strings -Wstrict-prototypes -D_REENTRANT -I/usr/local/include" +else + CFLAGS="-O2 -fno-strict-aliasing -Wall -Wshadow -Wwrite-strings -Wstrict-prototypes -D_REENTRANT -I/usr/local/include" +fi + +AC_ARG_ENABLE(optimize, [ --enable-optimize Enable CPU optimize], [ optimize=$enableval ], [ optimize=no ]) +if test "$optimize" = "yes"; then +AC_MSG_CHECKING(for cpuflags) + for cpuflagsbin in /usr/bin /usr/local/bin /usr/pkg/bin `pwd` NONE; do + if test "$cpuflagsbin" = "NONE"; then + AC_MSG_RESULT(unknown) + elif test -x $cpuflagsbin/cpuflags; then + CPUFLAGS=`$cpuflagsbin/cpuflags` + AC_MSG_RESULT($CPUFLAGS) + CFLAGS="$CPUFLAGS $CFLAGS" + break + fi + done +fi + + +# +# Enable full newsgate, this was default upto 0.50.0 +# +AC_ARG_ENABLE(newsgate, [ --enable-newsgate Compile with newsgate], [ newsgate=$enableval ], [ newsgate=no ]) +if test "$newsgate" = "yes"; then + AC_DEFINE(USE_NEWSGATE) + NEWSGATE="Yes" +else + NEWSGATE="No" +fi + + +# +# Checks for libraries and functions. +# +AC_CHECK_LIB(compat,re_comp,result=yes,result=no) +if test "$result" = "yes"; then + LIBS="$LIBS -lcompat" +fi + +AC_CACHE_CHECK(for pw_age in struct passwd, ac_cv_struct_passwd_pw_age, AC_TRY_COMPILE([#include ], +[ struct passwd pw; pw.pw_age = ""; ], ac_cv_struct_passwd_pw_age=yes, ac_cv_struct_passwd_pw_age=no)) +if test "$ac_cv_struct_passwd_pw_age" = "yes"; then + AC_DEFINE(ATT_AGE) +fi + +AC_CACHE_CHECK(for pw_comment in struct passwd, ac_cv_struct_passwd_pw_comment, AC_TRY_COMPILE([#include ], +[ struct passwd pw; pw.pw_comment = ""; ], ac_cv_struct_passwd_pw_comment=yes, ac_cv_struct_passwd_pw_comment=no)) +if test "$ac_cv_struct_passwd_pw_comment" = "yes"; then + AC_DEFINE(ATT_COMMENT) +fi + +AC_CHECK_LIB(shadow,setspent,result=yes,result=no) +if test "$result" = "yes"; then + LIBS="$LIBS -lshadow" + SHADOW_PASSWORD=1 + LIBSHADOW=1 +else + AC_CHECK_LIB(shadow,getspnam,result=yes,result=no) + if test "$result" = "yes"; then + LIBS="$LIBS -lshadow" + SHADOW_PASSWORD=1 + LIBSHADOW=1 + else + # some libc's (glibc 2.x) keep shadow functions in -lc + AC_CHECK_LIB(c,setspent,result=yes,result=no) + if test "$result" = "yes"; then + if test -f /etc/shadow; then + SHADOW_PASSWORD=1 + fi + fi + fi +fi + +if test "$SHADOW_PASSWORD" = "1"; then + if test "$ac_cv_func_fgetspent" != "yes"; then + AC_CHECK_LIB(shadow,fgetspent,result=yes,result=no) + if test "$result" = "yes"; then + if test "$LIBSHADOW" != "1"; then + LIBS="$LIBS -lshadow" + fi + fi + fi + AC_DEFINE(SHADOW_PASSWORD) +fi + +AC_CHECK_LIB(crypt,crypt,result=yes,result=no) +if test "$result" = "yes"; then + LIBS="$LIBS -lcrypt" +fi + +AC_CHECK_LIB(util,login,result=yes,result=no) +if test "$result" = "yes"; then + LIBS="$LIBS -lutil" + AC_CHECK_HEADERS(util.h) + AC_CHECK_HEADERS(libutil.h) + AC_CHECK_HEADERS(sys/types.h) +fi + + +# +# Support for zlib and bzlib transfers compression +# +ZLIBSUP=No +AC_CHECK_LIB(z,compress2,result=yes,result=no) +if test "$result" = "yes"; then + LIBS="$LIBS -lz" + AC_CHECK_HEADERS(zlib.h,ZLIBSUP=Yes,ZLIBSUP=No) +fi +BZLIBSUP=No +AC_CHECK_LIB(bz2,BZ2_bzCompressInit,result=yes,result=no) +if test "$result" = "yes"; then + LIBS="$LIBS -lbz2" + AC_CHECK_HEADERS(bzlib.h,BZLIBSUP=Yes,BZLIBSUP=No) +fi + +# +# Support for iconv, check libc first. +# +result="no" +AC_CHECK_FUNC(iconv_open,result=yes, +# AC_SEARCH_LIBS(iconv_open,iconv,result=yes,result=no) + AC_CHECK_LIB(iconv,iconv_open,result=yes,result=no) + if test "$result" = "yes"; then + LIBS="$LIBS -liconv" + fi +) +if test "$result" = "yes"; then + AC_CHECK_HEADERS(iconv.h) +fi + +# +# Checks for header files. +# +AC_HEADER_STDC +AC_HEADER_DIRENT +AC_HEADER_TIME +AC_HEADER_SYS_WAIT +AC_CHECK_HEADERS(termios.h sys/termios.h termio.h sys/termio.h sgtty.h) +AC_CHECK_HEADERS(sys/time.h sys/vfs.h unistd.h netinet/in.h regex.h) +AC_CHECK_HEADERS(sys/resource.h usersec.h gshadow.h shadow.h crypt.h) +AC_CHECK_HEADERS(limits.h utmp.h utmpx.h lastlog.h rpc/key_prot.h) +AC_STRUCT_TIMEZONE + +# +# Checks for typedefs, structures, and compiler characteristics. +# +AC_C_CONST +AC_TYPE_UID_T +AC_TYPE_OFF_T +AC_TYPE_PID_T +AC_TYPE_MODE_T +AC_TYPE_SIZE_T +AC_TYPE_SSIZE_T +AC_STRUCT_ST_BLKSIZE +AC_HEADER_STAT +AC_STRUCT_TM + +# +# Checks for library functions. +# +AC_CHECK_FUNCS(c64i a64l fchmod fchown fdatasync fsync lckpwdf strcasestr putpwent) +AC_PROG_GCC_TRADITIONAL +AC_FUNC_MEMCMP +AC_TYPE_SIGNAL +AC_FUNC_UTIME_NULL +AC_CHECK_FUNCS(gettimeofday re_comp select statfs statvfs) +AC_CHECK_FUNCS(getspnam initgroups updwtmp updwtmpx) + +# +# Check for usefull external programs +# +AC_PATH_PROG(COMPRESS,compress,no-compress-found-during-configure) +AC_PATH_PROG(GZIP,gzip,no-gzip-found-during-configure) +AC_PATH_PROG(ARC,arc) +AC_PATH_PROG(NOMARCH,nomarch) +AC_PATH_PROG(ARJ,arj) +AC_PATH_PROG(UNARJ,unarj) +AC_PATH_PROG(LHA,lha) +AC_PATH_PROG(RAR,rar) +AC_PATH_PROG(UNRAR,unrar) +AC_PATH_PROG(TAR,tar) +AC_PATH_PROG(ZIP,zip) +AC_PATH_PROG(UNZIP,unzip) +AC_PATH_PROG(ZOO,zoo) +AC_PATH_PROG(HA,ha) +AC_PATH_PROG(ANTIVIR,antivir) +AC_PATH_PROG(FPROT,fpscan) +AC_PATH_PROG(UVSCAN,uvscan) +AC_PATH_PROG(CLAMAV,clamscan) +AC_PATH_PROG(RB,rb) +AC_PATH_PROG(RB,lrb) +AC_PATH_PROG(SB,sb) +AC_PATH_PROG(SB,lsb) +AC_PATH_PROG(RZ,rz) +AC_PATH_PROG(RZ,lrz) +AC_PATH_PROG(SZ,sz) +AC_PATH_PROG(SZ,lsz) +AC_PATH_PROG(GOLDEDBIN,golded) +AC_PATH_PROG(GOLDEDBIN,gedlnx) +AC_PATH_PROG(GOLDNODE,goldnode) +AC_PATH_PROG(GOLDNODE,gnlnx) +AC_PATH_PROG(CONVERT,convert) + + +# +# Check for GeoIP support, see http://www.maxmind.com/ +# +GEOIPSUP=No +AC_CHECK_LIB(GeoIP,GeoIP_new,result=yes,result=no) +if test "$result" = "yes"; then + LIBS="$LIBS -lGeoIP" + AC_CHECK_HEADERS(GeoIP.h GeoIPCity.h,GEOIPSUP=Yes,GEOIPSUP=No) +fi + + +# +# FIX DEL for Del!=207, this was default upto 207 or 126 if no argument +# +AC_ARG_ENABLE(gbkdel, [ --enable-gbkdel Delete key is 126 (default is 207)], [ gbkdel=$enableval ], [ gbkdel=no ]) +if test "$gbkdel" = "yes"; then + GBK_DEL=126 + DEL=$GBK_DEL + echo "checking delete key... changed into $DEL" +else + DEL="default" + GBK_DEL=0 + echo "checking delete key... default" +fi +AC_DEFINE_UNQUOTED(GBK_DEL,$GBK_DEL) + + +AC_MSG_CHECKING(location of joe editor) +for joebin in /usr/bin /usr/local/bin /usr/pkg/bin NONE; do + if test "$joebin" = "NONE"; then + AC_MSG_RESULT(not found) + elif test -x $joebin/joe; then + AC_SUBST(joebin) + AC_MSG_RESULT($joebin) + break + fi +done +AC_MSG_CHECKING(location of joe rc files) +for joelib in /etc/joe /usr/lib/joe /usr/local/etc /usr/local/etc/joe /usr/local/lib/joe /usr/local/lib /usr/pkg/lib /usr/pkg/etc NONE; do + if test "$joelib" = "NONE"; then + AC_MSG_RESULT(not found) + elif test -f $joelib/joerc; then + AC_SUBST(joelib) + AC_MSG_RESULT($joelib) + break + fi +done + +AC_MSG_CHECKING(location of utmp) +for utmpdir in /var/run /var/adm /usr/adm /etc NONE; do + if test "$utmpdir" = "NONE"; then + AC_MSG_WARN(utmp file not found) + elif test -f $utmpdir/utmp; then + AC_DEFINE_UNQUOTED(_UTMP_FILE, "$utmpdir/utmp") + AC_MSG_RESULT($utmpdir) + break + fi +done + +AC_MSG_CHECKING(location of lastlog/wtmp) +for logdir in /var/log /var/adm /usr/adm /etc; do + if test -d $logdir; then + AC_DEFINE_UNQUOTED(_WTMP_FILE, "$logdir/wtmp") + AC_DEFINE_UNQUOTED(LASTLOG_FILE, "$logdir/lastlog") + AC_MSG_RESULT($logdir) + break + fi +done + +AC_MSG_CHECKING(location of vpopmail) +for vpop in /var/qmail/vpopmail/bin NONE; do + if test "$vpop" = "NONE"; then + AC_MSG_RESULT(not found) + elif test -x $vpop/vadduser; then + AC_DEFINE_UNQUOTED(_VPOPMAIL_PATH, "$vpop") + AC_MSG_RESULT($vpop) + break + fi +done + + +AC_OUTPUT( + Makefile.global + paths.h + unix/login.defs + INSTALL + FILE_ID.DIZ + script/editor + html/index.htm + html/basic.html + html/upgrade.html +) + +#================================================================================= + +AC_MSG_RESULT([ +-=-=-=-=-=-=-=-=-=-= Configuration Complete =-=-=-=-=-=-=-=-=-=- + + Configuration summary : + + Version : ..................... ${VERSION} + Hydra/Binkp zlib compression : ${ZLIBSUP} + Binkp bzlib compression : ..... ${BZLIBSUP} + Full newsgate : ............... ${NEWSGATE} + GeoIP support : ............... ${GEOIPSUP} + Delete key : .................. ${DEL} + +]) + +if test x$ac_cv_c_compiler_gnu = xyes ; then + echo -e " Tools :\n" + echo " Compiler is GCC : ............. ${ac_cv_c_compiler_gnu}" + fi + +AC_MSG_RESULT([ + Installation directories : + + Main directory : ........... ${prefix} + Owner and group : ........... ${OWNER}.${GROUP} + + Now type 'make' and as root 'make install' +]) diff --git a/cpuflags b/cpuflags new file mode 100755 index 00000000..cd91fc5e --- /dev/null +++ b/cpuflags @@ -0,0 +1,140 @@ +#!/bin/sh +# +# $Id: cpuflags,v 1.2 2004/09/25 10:47:33 mbse Exp $ +# +# Small script to try to find out the CPU optimisation flags. +# Based on ideas found in the NetBSD cpuflags script. +# +OS=`uname -s` + +case $OS in + FreeBSD | NetBSD) + + if [ -x /sbin/sysctl ]; then + SYSCTL=/sbin/sysctl + elif [ -x /usr/sbin/sysctl ]; then + SYSCTL=/usr/sbin/sysctl + elif [ -x /bin/sysctl ]; then + SYSCTL=/bin/sysctl + else + SYSCTL=/usr/bin/sysctl + fi + + hw_machine_arch=`$SYSCTL -n hw.machine_arch` + hw_model=`$SYSCTL -n hw.model` + + case $hw_machine_arch in + + alpha) + # cpu0 at mainbus0: ID 0 (primary), 21164A-0 (unknown ... + case "`egrep '^cpu0 ' /var/run/dmesg.boot`" in + *[\(\ ]2106[46][-\ \)]*) FLAGS="-mcpu=21064" ;; + *[\(\ ]21164[-\ \)]*) FLAGS="-mcpu=21164" ;; + *[\(\ ]21164A[-\ \)]*) FLAGS="-mcpu=21164a" ;; + *[\(\ ]21264B[-\ \)]*) FLAGS="-mcpu=21264" ;; + esac + ;; + + i386) + case $hw_model in + *386-class*) FLAGS='-march=i386' ;; + *486-class*) FLAGS='-march=i486' ;; + *AMD\ K6*) FLAGS='-march=k6' ;; + *Pentium*) FLAGS='-march=pentium' ;; + *586-class*) FLAGS='-march=pentium' ;; + *686-class*) FLAGS='-march=pentiumpro' ;; + esac + ;; + + sparc | sparc64) + case " $hw_model" in # Examples + *[\ \(]MB86900/1A*) FLAGS='-mcpu=cypress' ;; # ss1+ + *[\ \(]CY7C601*) FLAGS='-mcpu=cypress' ;; # ss2 + *[\ \(]W8601/8701*) FLAGS='-mcpu=cypress' ;; # elc + *[\ \(]MB86904*) FLAGS='-mcpu=supersparc' ;; # ss5 usparc + *[\ \(]MB86907*) FLAGS='-mcpu=supersparc' ;; # ss5 usparc + *[\ \(]TMS390S10*) FLAGS='-mcpu=supersparc' ;; # classic " + *[\ \(]TMS390Z50*) FLAGS='-mcpu=supersparc' ;; # ss10/ss20 + *[\ \(]RT620/625*) FLAGS='-mcpu=supersparc' ;; # ss20 ross + *[\ \(]MB86930*) FLAGS='-mcpu=sparclite' ;; # from gcc + *[\ \(]MB86934*) FLAGS='-mcpu=sparclite' ;; # from gcc + # under 1.5.1 -mcpu=ultrasparc chokes egcs-2.91.66 compiling perl + *[\ \(]SUNW,UltraSPARC*) FLAGS='-mcpu=v9' ;; # Ultra + esac + ;; + + esac + ;; + + Linux) + hw_machine_arch=`uname -m` + case $hw_machine_arch in + + parisc) + case "`egrep 'cpu family' /proc/cpuinfo | cut -d ' ' -f 4`" in + 1.0*) FLAGS='-march=1.0' ;; + 1.1*) FLAGS='-march=1.1' ;; + 2.0*) FLAGS='-march=2.0' ;; + esac + case "`egrep 'cpu ' /proc/cpuinfo | cut -d ' ' -f 2`" in + PA7100LC) FLAGS=${FLAGS}' -mschedule=7100LC' ;; + esac + ;; + + i386) + FLAGS='-march=i386' + ;; + + i486) + FLAGS='-march=i486' + ;; + + i586) + FLAGS='-march=pentium' + ;; + + i686) + FLAGS='-march=pentiumpro' + ;; + + *) + echo "Unsupported Linux arch $hw_machine_arch" + exit 1 + ;; + esac + ;; + + *) + echo "Unsupported OS $OS" + exit 1 + ;; +esac + + +# Fixup flags for old gcc +if [ -n "$FLAGS" ]; then + gcc_ver=`gcc -v 2>&1 | awk '/gcc version/ {sub("egcs-","");print $3}'` + FLAGS=`awk -v "flags=$FLAGS" -v "gcc_ver=$gcc_ver" ' + {if (gcc_ver < $1){map[$2] = ""$3}} + END{if (flags in map) {print map[flags]}else {print flags}} + ' <filelist + +depend: + @rm -f Makefile.bak; \ + mv Makefile Makefile.bak; \ + sed -e '/^# DO NOT DELETE/,$$d' Makefile.bak >Makefile; \ + ${ECHO} '# DO NOT DELETE THIS LINE - MAKE DEPEND RELIES ON IT' \ + >>Makefile; \ + ${ECHO} '# Dependencies generated by make depend' >>Makefile; \ + for f in ${SRCS}; \ + do \ + ${ECHO} "Dependencies for $$f:\c"; \ + ${ECHO} "`basename $$f .c`.o:\c" >>Makefile; \ + for h in `sed -n -e \ + 's/^#[ ]*include[ ]*"\([^"]*\)".*/\1/p' $$f`; \ + do \ + ${ECHO} " $$h\c"; \ + ${ECHO} " $$h\c" >>Makefile; \ + done; \ + ${ECHO} " done."; \ + ${ECHO} "" >>Makefile; \ + done; \ + ${ECHO} '# End of generated dependencies' >>Makefile + +# DO NOT DELETE THIS LINE - MAKE DEPEND RELIES ON IT +# Dependencies generated by make depend +# End of generated dependencies diff --git a/examples/footer.txt b/examples/footer.txt new file mode 100644 index 00000000..5e2a7835 --- /dev/null +++ b/examples/footer.txt @@ -0,0 +1,9 @@ + +MBSE Support BBS is the main development system for the MBSE BBS package. +MBSE BBS is available from 2:280/2802, magic request is MBSEBBS. +Also available at http://www.mbse.eu + +MBSE Support BBS es el sistema principal de sdesarrollo de paquete +MBSE BBS. +MBSE BBS esta disponible en 2:280/2802, peticion de magic MBSEBBS. +Tambien esta disponible en http://www.mbse.eu diff --git a/examples/header.txt b/examples/header.txt new file mode 100644 index 00000000..96a2c31f --- /dev/null +++ b/examples/header.txt @@ -0,0 +1,28 @@ + + ----------========== MBSE BBS Support System NL. ==========---------- + + Sysops : Michiel Broek + Online : 24 hrs/day + Line #1 : 31-(0)255-515973 1200-28K8 bps, V34,V42B,V32B,X75 + Requests : minimum 1200 bps, no limits. + Request times: except ZMH. + Request flag : XA + AKAs : 2:280/2802 + + Alle files op dit bbs die onder MS-DOS draaien zijn gecontroleerd met + de laatste beschikbare virusscanners voordat ze voor download op het + bbs geplaatst zijn. + Desondanks aanvaarden wij geen enkele aansprakelijkheid voor eventuele + schade die ontstaat door het gebruik van deze files. + + All files on this bbs running under MS-DOS are checked with the latest + available virusscanners before they were made available for download from + the bbs. + Nevertheless we take no responibility for any damage due to the use of + these files. + + Todos los ficheros en esta bbs nativos de MS-DOS son verificados con + los mas recientes antivirus disponibles antes de ser puestos para + descarga desde la bbs. + Aun asi nosotros no somos responsables por cualquier daño casusado + debido al uso de estos archivos. diff --git a/examples/menus-de.tar b/examples/menus-de.tar new file mode 100644 index 00000000..38a86eb0 Binary files /dev/null and b/examples/menus-de.tar differ diff --git a/examples/menus-en.tar b/examples/menus-en.tar new file mode 100644 index 00000000..05626d44 Binary files /dev/null and b/examples/menus-en.tar differ diff --git a/examples/menus-es.tar b/examples/menus-es.tar new file mode 100644 index 00000000..d135b557 Binary files /dev/null and b/examples/menus-es.tar differ diff --git a/examples/templates-de.tar b/examples/templates-de.tar new file mode 100644 index 00000000..ef33e03c Binary files /dev/null and b/examples/templates-de.tar differ diff --git a/examples/templates-en.tar b/examples/templates-en.tar new file mode 100644 index 00000000..81f0e9ef Binary files /dev/null and b/examples/templates-en.tar differ diff --git a/examples/templates-es.tar b/examples/templates-es.tar new file mode 100644 index 00000000..c23bfa2a Binary files /dev/null and b/examples/templates-es.tar differ diff --git a/examples/templates-nl.tar b/examples/templates-nl.tar new file mode 100644 index 00000000..91e1cb1e Binary files /dev/null and b/examples/templates-nl.tar differ diff --git a/examples/txtfiles-de.tar b/examples/txtfiles-de.tar new file mode 100644 index 00000000..d22d3639 Binary files /dev/null and b/examples/txtfiles-de.tar differ diff --git a/examples/txtfiles-en.tar b/examples/txtfiles-en.tar new file mode 100644 index 00000000..bcebfcc1 Binary files /dev/null and b/examples/txtfiles-en.tar differ diff --git a/examples/txtfiles-es.tar b/examples/txtfiles-es.tar new file mode 100755 index 00000000..8c666873 Binary files /dev/null and b/examples/txtfiles-es.tar differ diff --git a/html/.cvsignore b/html/.cvsignore new file mode 100644 index 00000000..27ee8d66 --- /dev/null +++ b/html/.cvsignore @@ -0,0 +1 @@ +filelist index.htm basic.html upgrade.html diff --git a/html/Makefile b/html/Makefile new file mode 100644 index 00000000..98a365b5 --- /dev/null +++ b/html/Makefile @@ -0,0 +1,125 @@ +# Copyright (c) M Broek, 1997-2000 +# Top-level makefile for MBSE BBS html documentation. +# $Id: Makefile,v 1.43 2007/03/01 19:12:54 mbse Exp $ + +include ../Makefile.global + +H_BASE = dist.html manual.css errcodes.html \ + flow.html postfix.html ups.html doors.html \ + intergate.html intro.html invoking.html faq.html \ + known_bugs.html mgetty.html routing.html nodelist.html + +H_FTSC = ftsc/index.htm + +H_IMAGES = images/b_arrow.png images/magic.png images/nodes1.png \ + images/connec.png images/mbsetup0.png images/nodes2.png \ + images/domains.png images/mbsetup1.6.S.png images/nodes3.png \ + images/e_menu.png images/mbsetup1.6.png images/nodes4.png \ + images/emareas.png images/mbsetup2.png images/nodes5.png \ + images/nodes6.png images/nodes7.png images/nodes8.png \ + images/nodes9.png images/nodes10.png images/doors.png \ + images/emgroup.png images/modems0.png images/oneliner.png \ + images/fdb.png images/newfiles.png images/protocol.png \ + images/fegroup.png images/newgroups.png images/rarrow.png \ + images/fileecho.png images/nodelist.png images/security.png \ + images/filefind.png images/nodelist1.png images/tty.png \ + images/files.png images/nodelist2.png images/tty1.png \ + images/go_to.png images/nodelist3.png images/tty2.png \ + images/hatch.png images/nodelist4.png \ + images/language.png images/nodelist5.png images/uarrow.png \ + images/larrow.png images/users.png images/doors2.png \ + images/mbse.png images/taskmgr.png images/mbsebbs-s.png \ + images/mbsebbs.png images/users2.png images/hand.up.png \ + images/dream1.png images/dream2.png images/dream3.png \ + images/tdream1.png images/tdream2.png images/tdream3.png \ + images/route1.png images/route2.png images/mbmon1.png \ + images/mbmon2.png images/mbmon1-tn.png images/mbmon2-tn.png \ + images/nodes11.png + +H_LICENSE = license/copying.html license/hydracom.html license/index.htm \ + license/jam.html + +H_MENUS = menus/control.html menus/index.htm menus/menu100.html \ + menus/menu300.html menus/menu500.html \ + menus/menu0.html menus/menu200.html menus/menu400.html + +H_MISC = misc/dropfile.html misc/fileid.html misc/index.htm \ + misc/jam.html misc/semafore.html misc/filefind.html \ + misc/ftpserver.html misc/ipmailer.html misc/outbound.html \ + misc/usleep.html misc/webserver.html + +H_PROGS = programs/mbfido.html programs/mbmon.html \ + programs/mbtoberep.html programs/mblogin.html \ + programs/index.htm programs/mbcico.html \ + programs/mbfile.html programs/mbmsg.html \ + programs/mbseq.html programs/mbuser.html \ + programs/mbaff.html programs/mbdiff.html \ + programs/mbindex.html programs/mbout.html \ + programs/mbsetup.html programs/mbuseradd.html \ + programs/mball.html programs/mbnntp.html \ + programs/mblang.html programs/mbsebbs.html \ + programs/mbstat.html programs/mbpasswd.html \ + programs/mbtask.html + +H_SETUP = setup/archiver.html setup/index.htm setup/bbs.html \ + setup/language.html setup/oneliner.html \ + setup/emareas.html setup/magic.html setup/mail.html \ + setup/protocol.html setup/emgroup.html setup/chat.html \ + setup/fdb.html setup/security.html setup/sitedoc.html \ + setup/fegroup.html setup/modems.html setup/softinfo.html \ + setup/fidonet.html setup/tic.html \ + setup/fileecho.html setup/newfiles.html setup/filefind.html \ + setup/newgroups.html setup/files.html setup/nodes.html \ + setup/ttyinfo.html setup/global.html setup/users.html \ + setup/hatch.html setup/virscan.html setup/services.html \ + setup/domains.html setup/taskmgr.html setup/route.html + +H_OTHER = index.htm basic.html upgrade.html + +H_IN = index.htm.in basic.html.in upgrade.html.in + +FILES = $(H_IN) $(H_BASE) $(H_FTSC) $(H_IMAGES) $(H_LICENSE) $(H_MENUS) $(H_MISC) $(H_PROGS) $(H_SETUP) Makefile + +######################################################################################################### + +all depend clean depend: + +install: + @echo "Installing html documentation in ${PREFIX}/html" + @rm -Rf ${PREFIX}/html + @mkdir -p ${PREFIX}/html + @mkdir -p ${PREFIX}/html/ftsc + @mkdir -p ${PREFIX}/html/images + @mkdir -p ${PREFIX}/html/license + @mkdir -p ${PREFIX}/html/menus + @mkdir -p ${PREFIX}/html/misc + @mkdir -p ${PREFIX}/html/programs + @mkdir -p ${PREFIX}/html/setup + @${CHOWN} ${OWNER}:${GROUP} ${PREFIX}/html + @${CHOWN} ${OWNER}:${GROUP} ${PREFIX}/html/ftsc + @${CHOWN} ${OWNER}:${GROUP} ${PREFIX}/html/images + @${CHOWN} ${OWNER}:${GROUP} ${PREFIX}/html/license + @${CHOWN} ${OWNER}:${GROUP} ${PREFIX}/html/menus + @${CHOWN} ${OWNER}:${GROUP} ${PREFIX}/html/misc + @${CHOWN} ${OWNER}:${GROUP} ${PREFIX}/html/programs + @${CHOWN} ${OWNER}:${GROUP} ${PREFIX}/html/setup + @${INSTALL} -p -c -o ${OWNER} -g ${GROUP} -m 0444 ${H_BASE} ${PREFIX}/html + @${INSTALL} -p -c -o ${OWNER} -g ${GROUP} -m 0444 ${H_OTHER} ${PREFIX}/html + @${INSTALL} -p -c -o ${OWNER} -g ${GROUP} -m 0444 ${H_FTSC} ${PREFIX}/html/ftsc + @${INSTALL} -p -c -o ${OWNER} -g ${GROUP} -m 0444 ${H_IMAGES} ${PREFIX}/html/images + @${INSTALL} -p -c -o ${OWNER} -g ${GROUP} -m 0444 ${H_LICENSE} ${PREFIX}/html/license + @${INSTALL} -p -c -o ${OWNER} -g ${GROUP} -m 0444 ${H_MENUS} ${PREFIX}/html/menus + @${INSTALL} -p -c -o ${OWNER} -g ${GROUP} -m 0444 ${H_MISC} ${PREFIX}/html/misc + @${INSTALL} -p -c -o ${OWNER} -g ${GROUP} -m 0444 ${H_PROGS} ${PREFIX}/html/programs + @${INSTALL} -p -c -o ${OWNER} -g ${GROUP} -m 0444 ${H_SETUP} ${PREFIX}/html/setup + +clean: + rm -f filelist + +filelist: Makefile + BASE=`pwd`; \ + BASE=`basename $${BASE}`; \ + (for f in ${FILES}; \ + do echo ${PACKAGE}-${VERSION}/$${BASE}/$$f; \ + done) >filelist + diff --git a/html/basic.html.in b/html/basic.html.in new file mode 100644 index 00000000..65ff8d7a --- /dev/null +++ b/html/basic.html.in @@ -0,0 +1,287 @@ + + + + + + + + + + + +MBSE BBS basic installation. + + + +
+
Last update 14-Oct-2007
+

MBSE BBS Basic Installation

+ +

Introduction.

+

+Before you compile and install MBSE BBS you must first setup the basic +environment. If you don't do this, things will fail. +

+To compile and install MBSE BBS most distributions have installed all needed packages. +If important packages are missing then the configure script will tell you. There are also +less important packages which if missinng still let you compile MBSE BBS, but you will miss +some features. Here is a short list of these packages: +

    +
  1. Zlib. On some distributions you also need zlib development. When you have + zlib installed, then in mbcico extra code will be compiled in the Hydra and Binkp protocol drivers + that will allow the PLZ extension. In the binkp protocol GZ compression will be enabled as well.
  2. +
  3. Bzlib. On some distributions you need to install bzlib2 development to add + support for binkp BZ2 compression.
  4. +
  5. GeoIP. Allows logging of the origin of the network connections by country and continent. + You need at least GeoIP 1.4.3 to compile without errors. See + www.maxmind.com. +
+If you use Gentoo or Ubuntu, read the files README.Gentoo or README.Ubuntu. The last one may be usefull +for Debian users too. +

 

+ +

Step 1: planning the filesystems.

+

+MBSE BBS is default installed in /opt/mbse. It should be possible to install the bbs in a different +location but this is not supported. Many have tried, and and only a few have succeeded. See +Filesystem Hierarchy Standard for more info. +The default filesystem layout looks like this:
+

+/opt/mbse                       0775  Default MBSE_ROOT
+/opt/mbse/bin                   0770  Binaries
+/opt/mbse/etc                   0770  System configuration files
+/opt/mbse/etc/dosemu            0750  DOSemu configuration files
+/opt/mbse/ftp/pub               0755  Default FTP root for download areas.
+/opt/mbse/home                  0770  Users homedirectories
+/opt/mbse/home/bbs              0770  Newuser account
+/opt/mbse/html                  0755  HTML documentation
+/opt/mbse/log                   0770  MBSE BBS logfiles
+/opt/mbse/share/doc             0750  Generated sitedocs
+/opt/mbse/share/doc/html        0750  Generated html sitedocs
+/opt/mbse/share/doc/tags        0750  Generated area tags
+/opt/mbse/share/int             0750  Base for language files
+/opt/mbse/share/int/macro/de    0750  German template macro's
+/opt/mbse/share/int/macro/en    0750  English template macro's
+/opt/mbse/share/int/macro/es    0750  Spanish template macro's
+/opt/mbse/share/int/macro/fr    0750  French template macro's
+/opt/mbse/share/int/macro/gl    0750  Galego template macro's
+/opt/mbse/share/int/macro/nl    0750  Dutch template macro's
+/opt/mbse/share/int/macro/zh    0750  Chinese template macro's
+/opt/mbse/share/int/menus/de    0750  German menu files
+/opt/mbse/share/int/menus/en    0750  English menu files
+/opt/mbse/share/int/menus/es    0750  Spanish menu files
+/opt/mbse/share/int/menus/fr    0750  French menu files
+/opt/mbse/share/int/menus/gl    0750  Galego menu files
+/opt/mbse/share/int/menus/nl    0750  Dutch menu files
+/opt/mbse/share/int/menus/zh    0750  Chinese menu files
+/opt/mbse/share/int/txtfiles/de 0750  German ansi screens
+/opt/mbse/share/int/txtfiles/en 0750  English ansi screens
+/opt/mbse/share/int/txtfiles/es 0750  Spanish ansi screens
+/opt/mbse/share/int/txtfiles/fr 0750  French ansi screens
+/opt/mbse/share/int/txtfiles/gl 0750  Galego ansi screens
+/opt/mbse/share/int/txtfiles/nl 0750  Dutch ansi screens
+/opt/mbse/share/int/txtfiles/zh 0750  Chinese ansi screens
+/opt/mbse/tmp                   0770  Temp directory
+/opt/mbse/tmp/arc               0770  Temp archiver directory
+/opt/mbse/var                   0770  Var root
+/opt/mbse/var/arealists         0750  Areamgr arealist files
+/opt/mbse/var/badtic            0750  Bad TIC files
+/opt/mbse/var/boxes             0770  Base for nodes fileboxes
+/opt/mbse/var/bso               0770  Binkley Style Outbound directory
+/opt/mbse/var/bso/outbound      0770  Default outbound for main aka
+/opt/mbse/var/dosemu            0770  Base for DOS drives (doors)
+/opt/mbse/var/dosemu/c          0770  DOS drive C:
+/opt/mbse/var/fdb               0770  Files database
+/opt/mbse/var/inbound           0750  Protected inbound directory
+/opt/mbse/var/magic             0750  Magic filerequest names
+/opt/mbse/var/mail              0770  JAM messagebase root
+/opt/mbse/var/msgs              0770  *.msgs netmail directory
+/opt/mbse/var/nodelist          0750  Nodelists
+/opt/mbse/var/queue             0750  Queue for before outbound
+/opt/mbse/var/rules             0770  Echomail area rules files
+/opt/mbse/var/run               0770  Pid files of running programs
+/opt/mbse/var/sema              0777  Semafore files
+/opt/mbse/var/ticqueue          0750  Queue for TIC files
+/opt/mbse/var/unknown           0750  Unprotected inbound directory
+
+

+Don't use UMSDOS or SAMBA filesystems for the bbs, stick by the standard +GNU/Linux +filesystems (ext2, ext3 or reiserfs) or ufs if you use FreeBSD. +If you intent to make your bbs also accessible +by FTP and WWW you must create the directory structure under the ftp user +behind the pub directory. Read the +ftp server doc for details. If you don't follow these guidlines, you +will run into trouble later and have to spend a lot of time in correcting +this error. +

 

+ +

Step 2: Running the installation script.

+

+First, if you use FreeBSD, install the psmisc package. This will make sure +that MBSE BBS is stopped properly if you shutdown your computer. Also if you +use FreeBSD 5.0 or later make sure that you mount procfs, see man procfs +for details. If you don't mount procfs, you cannot add new users to the bbs and +existing bbs users cannot change their passwords. As sysop, you can't change +passwords too.
+If you are upgrading, proceed with step 4. If not, follow the next steps +very carefully!
+The installation script must be run by root. It checks if there is a +previous or failed installation on your system. If that's so the script will +not run. In other words, you can only run this script once. The script makes +backup copies of the system files it changes, these files will get the +extension .mbse To run the installation script you need +the archive mbbsebbs-@VERSION@.tar.bz2. +Unpack this archive on your system, in /tmp: +

+cd /tmp
+tar xfvj /path/to/the/mbsebbs-@VERSION@.tar.bz2
+
+To start the script type: +
+cd mbsebbs-@VERSION@
+bash ./SETUP.sh
+
+Ubuntu users should do: +
+cd mbsebbs-@VERSION@
+sudo bash ./SETUP.sh
+
+Yes, use bash as shell here. On some systems root doesn't use bash +as login shell, calling the script with bash forces the use of bash. +The script does the following: +
    +
  1. Create the group bbs +
  2. Create the user mbse On Ubuntu this user is added to the admin group. +
  3. Create a .profile for user mbse +
  4. Create and set owner of directory tree under /opt/mbse +
+Then the script will ask you to give a password for user mbse +This password is for system maintenance and for you to make changes to the +bbs. You will need that frequently but you should not make that password +easy to guess of course. The script will then continue again: +
    +
  1. The user bbs is added. +
  2. The password will be removed from user bbs This action +will make changes in /etc/shadow (if you have that) otherwise in /etc/passwd. +On FreeBSD it uses other tools to modify the master database. +On NetBSD you have to do that manually, there are no tools to do that. +
  3. If they don't exist in the file /etc/services the services fido, tfido +and binkp will be added. +
  4. If they don't exist in the file /etc/inetd.conf the internet protocols +for the mailer will be added. The inetd is restarted to +activate the changes. If your distribution uses xinetd instead of inetd, an +include file for xinetd is added instead. +
+

 

+ +

Step 3: Check the basic installation

+

+The last screen of the script is about sanity checks. Perform those checks! +If something is wrong, now is the time to fix it. Don't panic and remember +the backups of the system files that are changed are in /etc with the +extension .mbse i.e: those were the original files. +The installation logfile is copied to /opt/mbse. +If everythings is allright, then remove the directory /tmp/mbsebbs-@VERSION@: +

+cd /tmp
+rm -Rf mbsebbs-@VERSION@
+
+

 

+ +

Step 4: Install the basic packages.

+

+Login as user mbse. Yes, very important, login as user mbse. +While in mbse's home directory (/opt/mbse) unpack the distribution archives: +

+tar xfvj /path/to/mbsebbs-@VERSION@.tar.bz2
+
+You now have the subdirectory with sources in the right place. +Next build the binaries and install them using the following commands: +
+cd ~/mbsebbs-@VERSION@
+./configure [--enable-optimize] [--enable-newsgate] [--enable-gdkdel]
+make
+su        important, do not use "su -"
+password: enter root password here
+make install
+exit
+
+Ubuntu users should do: +
+cd ~/mbsebbs-@VERSION@
+./configure [--enable-optimize] [--enable-newsgate] [--enable-gdkdel]
+make
+sudo make install
+
+Important: it seems logical to use the --enable-newsgate option +but it isn't. When you do, the mbnntp program is disabled and you cannot serve +echomail as news to your users via internet. But you can gate echomail to the +internet. Independant of your choice, you can allways make internet news available +for your bbs users. Only use --enable-newsgate if you really need to gate echomail +to the internet. +

+To support Chinese the DELete key needs to be changed because it conflicts with one +of the characters. If you want to use Chinese, use --enable-gbkdel +to configure. +

+The last part of the installation procedure shows you the location of the bbs +startup script that is added to your system. Remember this one for a moment. +Because this is your first +time installation, example menus and example textfiles are installed. +If they already exist on your systems (when you do an upgrade) they +will not be installed again. +

+Now start the bbs for the first time (still as root) by executing the startup +script you just saw on the screen followed by a space and the word start. +For example: +

+/etc/rc.d/init.d/mbsed start
+
+Ubuntu users do: +
+sudo /etc/init.d/mbsebbs start
+
+This will start the mbtask daemon. +After that the bbs will be opened for use. +Check the file /opt/mbse/log/mbtask.log for startup problems. +The first time mbtask is started on your system it will create a +lot of new configuration files with default settings. +

 

+ +

Step 5: Ready.

+

+Now you have shell scripts in ~/etc, most of them are called by cron, some +are called during system startup and shutdown. You also have some default +configuration files, these are ttyinfo, modems, fidonet networks. In the +default (english) directory you now have default menu datafiles and ansi +screens. These are copies of my test system so you have to edit them to +build your own bbs.
+Editing ansi screens can be done on a GNU/Linux system with one of the +following packages: +

    +
  1. duhdraw, this is available from 2:280/2802 as + duhdraw.tgz (68 Kbytes). + The binaries are included in this archive, if you compile it yourself + it may give trouble so if the binaries work, use these.
  2. +
  3. bmdraw This editor is available from + http://www.drastic.net/bmdraw/, + you can find the tar.gz file in + http://www.drastic.net/bmdraw/files/bmd022.tgz, + it's about 36 Kbytes. This is also a thedraw clone for Linux. + Note, at my system I needed to run it as root.
  4. +
  5. TetraDraw This is a very nice Ansi editor, you can + get this file as TETR~VC#.TGZ from 2:280/2802. The file is 157 Kbytes. +
+You may also want to edit ~/etc/header.txt and ~/etc/footer.txt, these +files are the top and bottom of the newfiles/allfiles listings. +

+Now the basic environment is finished, the next thing to do is +configure the bbs. +

 

+ +Back to IndexBack to Index + +

+ + diff --git a/html/dist.html b/html/dist.html new file mode 100644 index 00000000..4961f18f --- /dev/null +++ b/html/dist.html @@ -0,0 +1,104 @@ + + + + + + + + + + + +Unix distributions. + + + +
+
Last update 12-Sep-2007
+

Unix Distributions.

+ +

Which distribution

+

+GNU/Linux is available in several distributions, they all have advantages and +disadvantages for bbs use. Which distribution to pick is very personal. +Since late 2001 a port to FreeBSD is available, from version 0.33.19 this +port is ready to use. +Since januari 2002 a port to NetBSD is available, later other *BSD versions +were added. +

 

+ +

Slackware

+

+I am using MBSE BBS on several Slackware distributions. You can make a very small +setup for MBSE BBS like Zipslack. Not included is the mgetty package. +

 

+ +

Redhat and Mandrake

+

+I write this as if these are the same which isn't true of course. From MBSE +BBS's point of view they are almost the same, so that's why I treat them as +the same distributions. The E-Smith server and gateway based on RedHat is also +supported. +For people with little GNU/Linux experience these +distributions are a good choice if you can spare the diskspace. I haven't +found a simple dedicated setup for the bbs, so the safest way is to install +allmost everything, which is quite simple. This will cost you about 1200 Megs. +Maybe that someone more experienced with these distro's can give more details +on how to build a small server. +

 

+ +

SuSE

+

+Since SuSE 7.1 the setup scripts are working and tested. Older distro's +might work. +

 

+ +

Debian

+

+The installation works on a Debian 2.1, 2.2 and 3.0 distribution without any problems. +How to build an optimized Debian system is not tested by me. +

 

+ +

Ubuntu

+

+Since 0.91.10 the installation on Ubuntu 7.04 works fine. Read the file README.Ubuntu in +the source for more information. +

 

+ +

GenToo

+

+Installation and startup scripts are tested on GenToo. Read the file README.Gentoo for +more information. +

 

+ +

FreeBSD

+

+I tested on FreeBSD 6.2 stable release. Older releases have been used and work. +The setup is quite simple, do a small setup (average user), and add some needed packages +from the ports collection such as gcc, mgetty, infozip etc. +You may need to build mgetty yourself if you have an older FreeBSD distribution. +

 

+ +

NetBSD

+

+Currently NetBSD 3.1 is used for the latest tests. NetBSD before 3.0 doesn't +work anymore. +

 

+ +

OpenBSD

+

+Currently OpenBSD 3.7 is used for testing. +

 

+ +

Famous last words...

+

+I don't have the diskspace and time for all kinds of GNU/Linux distributions +to install for testing. Most distributions work without major changes. For +questions about "unsupported" distributions, the best place to be is in the +MBSE support echo. +

 

+ +BackGo Back +

+ + diff --git a/html/doors.html b/html/doors.html new file mode 100644 index 00000000..fa17cb55 --- /dev/null +++ b/html/doors.html @@ -0,0 +1,229 @@ + + + + + + + + + + + +Running DOS doors on MBSE BBS. + + + +
+
Last update 05-Nov-2004
+

MBSE BBS - Running DOS doors.

+ +

Introduction

+

+Running DOS doors is possible on systems that can run +dosemu. The latest versions of dosemu don't +need to be started suid root or started using sudo, it can run as the user that +is logged in the bbs. Since that is possible, a new location for the virtual C: +drive is now being used withing the $MBSE_ROOT file structure. This virtual C: +drive is owned by the group bbs. The basic ideas how doors should be run written +by Redy Rodriguez are still valid, but some scripts are changed and some dosemu +files must be copied into the mbse directory tree.

+One very important note: the virtual dos drive is now $MBSE_ROOT/var/dosemu/c +Don't use another location or change the access rights, there will be several +references from mbse to that and only that location for dos support. +Choose another one and you are on your own! +

 

+ +

Installing dosemu

+

+Some distributions have good dosemu packages, others don't. You need a dosemu +that can be used in a systemwide multiuser setup. The bad packages want to have +the dos drive in each users home directory, this is not what we want for doors. +If you don't have a good dosemu you have to compile your own. This is not too +complicated. First download the source from dosemu. You don't need the freedos-bin source +if you are going to use ms-dos or pc-dos. +Unpack the source in some directory of your choice and compile the sources:
+

+mbse@seaport$ tar xfvz dosemu-1.2.2.tgz
+mbse@seaport$ cd dosemu-1.2.2
+mbse@seaport:~/dosemu-1.2.2$ ./configure --prefix=/usr --sysconfdir=/etc/dosemu --with-x
+mbse@seaport:~/dosemu-1.2.2$ make
+
+Note that the --with-x is not needed for running doors, but it +might be handy that you can use dosemu as user mbse in X to do maintenance on +your doors.
+Then as root do:
+
+root@seaport:~/dosemu-1.2.2# make install
+
+

 

+ +

Setup dosemu in mbse

+

+First copy /etc/dosemu/dosemu.conf into ~/etc/dosmeu. +Then edit ~/etc/dosemu/dosemu.conf so that we have a version for +mbse users. Set the following settings in that file:
+

+$_hdimage = "/opt/mbse/var/dosemu/c"
+$_floppy_a = ""
+$_xms = (1024)
+$_ems = (2048)
+$_dpmi = (0x1000)
+$_layout = "us"
+
+Next copy this new file as virtual.conf in +~/etc/dosemu/. Then add the following line: +
+$_com1 = "virtual"
+
+Note that in older dosemu versions you could use a commandline option to do +this, but this isn't supported anymore since dosemu-1.2.x. The +rundoor.sh now also uses two configuration files.
+Next we need to setup the C: drive. Do this as user mbse. First type umask +007, this sets the create mode for directories to 0770 and files to 0660 +so that we create all files and directories read/write for all bbs users. This +is very important! Type the following commands: +
+mbse@seaport:~$ umask 007
+mbse@seaport:~$ cd var/dosemu/c
+mbse@seaport:~/var/dosemu/c$ mkdir dos dosemu temp util doors
+
+Now we must install dos. If you use ms-dos then in ~/var/dosemu/c +copy the ms-dos files command.com, io.sys and +msdos.sys. In ~/var/dosemu/c/dos copy all ms-dos +commands. Next install the dosemu utilities, copy these from +/usr/share/dosemu/freedos/dosemu to +~/var/dosemu/c/dosemu. Now there is a empty +~/var/dosemu/c/util, copy some utilities here such as your +favourite dos editor, zip and unzip etc.
+Next we must create config.sys and autoexec.bat. These +files must be dos crlf formatted. You can do that with the joe editor, for +example joe -crlf config.sys. Examples:
+
+config.sys:
+
+BUFFERS = 20
+DEVICE=C:\DOS\SETVER.EXE
+SET TEMP=C:\TEMP
+DOS=HIGH,UMB
+FILES=50
+
+autoexec.bat:
+
+@ECHO OFF
+PROMPT $P$G
+PATH C:\DOSEMU;C:\DOS;C:\UTIL;
+SET TEMP=C:\TEMP
+Lh C:\DOS\DOSKEY /INSERT
+Lh C:\DOS\SHARE
+
+Now we are ready to try it, type mbsedos and the dos emulator +should start. You can leave dosemu with the command exitemu. +

 

+ +

Installing a door

+

+All doors are started using the script ~/bin/rundoor.sh. This script +is never started directly, you should make a copy of that with the name of the +door, but the best solution is to make a symlink with the name of the door. For +example:
+

+mbse@seaport$ cd ~/bin
+mbse@seaport:~bin$ ln -s rundoor.sh 8ball
+
+See also inside rundoor.sh for the instructions. This file does +several things, first it prepares the users home directory with the dosemu +environment so that dosemu will run for the user. Then it creates a node +directory in the dos C: drive and copies the door dropfiles into that node +directory. Finally it starts dosemu in virtual comport mode and inserts the +commands in dos to start the door.
+But before we can run the door, the door itself must be installed in the dos +partition. In this example I will explain how to install the door 8ball. +Start mbsedos and create a directory c:\doors\8ball. +Unpack 8ball in that directory and run setup. Test the door with +the command local. Now goto the directory c:\doors and +create the file 8ball.bat. That file will be used to start the +door. It will be called by c:\doors.bat with two parameters, the +name of the door and the nodenumber. +
+@ECHO OFF
+C:
+C:\UTIL\X00 E B,0,57600
+CD \DOORS\8BALL
+ASKME.EXE /E /C1 /PC:\DOORS\NODE%1
+C:\UTIL\X00
+CD \DOORS\NODE%1
+DEL DOOR.SYS
+DEL DOOR32.SYS
+
+Finally we have to make a menu entry to start the door. The Opt. Data line is +the command to start the door, the optional /N is replaced by the +current nodenumber of the user. A second option may be used, +novirtual, if that is present the rundoor.sh will +start dosemu without setting the comport in virtual mode. Use this if your door +isn't a real door but a normal dos program. +

+door setup

+Note that I use the +Display lines to make the menu, there are only ansi screens for the top and +common lines on the screen, see the second image how to build the whole doors +menu. +

+doors menu +

+

 

+ +

Netmail support

+

+In the virtual c: drive you need some directories that point to several other +mbse subdirectories. You may need at least three of them, one to put netmail in, +one to put files in to send and one semafore directory to tell mbse there is +something to send. For example like this: +

+ln -s /opt/mbse/var/msgs /opt/mbse/var/dosemu/c/msgs
+ln -s /opt/mbse/var/boxes/node92_100_60 /opt/mbse/var/dosemu/c/outbox
+ln -s /opt/mbse/var/sema /opt/mbse/var/dosemu/c/sema
+
+In dos you now have: +
+C:\MSGS
+C:\OUTBOX
+C:\SEMA
+
+In C:\MSGS doors may put *.msg netmails. +File attaches won't work from these netmails because the netmails +point to files with dosnames. (May be solved later). The script that calls the +door, for example c:\doors\bre.bat must copy the file to send to +the node outbound box. In the above example that would be copy to +C:\OUTBOX. +To create the semafore to tell mbse to scan add to the batfile (for example +C:\DOORS\BRE.BAT the following two lines: +
+CD C:\SEMA
+ECHO "">MAILOUT
+
+See also the F.A.Q. for some very usefull tips and +tricks. +Using the same method with symlinks, you can make all paths you need from the +rest of mbse visible in dos. Use with care. +

 

+ +

What if I don't upgrade

+

+That's your choice, but for a while the old method starting dosemu via sudo is +still supported. The file ~/bin/bbsdoor.sh is still there, but the +file ~/bin/rundoor.sh is renamed to +~/bin/runvirtual.sh. So you should change all symlinks of your door +names in ~/bin (or copies) to ~/bin/runvirtual.sh. You +should not need to change anything else. +

+ +

Problems

+

+Currently there are some troubles with modem calls. +

+ +BackGo Back +

+ + diff --git a/html/errcodes.html b/html/errcodes.html new file mode 100644 index 00000000..903801f0 --- /dev/null +++ b/html/errcodes.html @@ -0,0 +1,83 @@ + + + + + + + + + + + +Error return codes. + + + +
+
Last update 30-Jun-2005
+

MBSE BBS - Error return codes.

+ + +

+Following is a list of return codes from all official mbse programs and +utilities. These codes can be used in scripts. If a program exits normally, the +return code is 0. If a program exits by a signal, the return code is the signal +number. This means if you kill a running program with a SIGTERM, the programs +exits with the SIGTERM error number. On most platforms this is 15. These +errorcodes are for the most part the same on all *nix platforms but because of +some small differences I cannot list these here. Just do a kill -l to see +a list of errors for your own platform.
+Here is the list of other return codes: +

    +
  1. Commandline error +
  2. Configuration error +
  3. Initialisation error +
  4. A full disk partition +
  5. UPS alarm detected +
  6. No valid recipients +
  7. Execute external program failed +
  8. Set tty failed +
  9. File transfer error +
  10. File attach failed +
  11. Can't lock program, retry later +
  12. Node not in nodelist +
  13. Node may not be called +
  14. Can't make connection +
  15. Can't open tty port +
  16. Node is locked +
  17. Node IP address not found +
  18. Unknow session type +
  19. Not Zone Mail Hour +
  20. Modem error +
  21. No modemport available +
  22. Session error (password) +
  23. EMSI session error +
  24. FTSC session error +
  25. WaZoo session error +
  26. YooHoo session error +
  27. Outbound scan error +
  28. Can't make poll +
  29. File request error +
  30. Error processing nodediff +
  31. Virus found +
  32. General error +
  33. Timeout error +
+

+The mailer can also return the following error codes: +

    +
  1. TTY general error +
  2. TTY timeout +
  3. TTY EndOfFile +
  4. TTY Hangup +
  5. TTY Empty +
+

+When an external program is run, a mbse program can exit with return code 256 + +the return code of the external program. So if the external program exits with +error code 7, the code returned by the mbse program is 263. +

+BackGo Back +

+ + diff --git a/html/faq.html b/html/faq.html new file mode 100644 index 00000000..5d5d90d0 --- /dev/null +++ b/html/faq.html @@ -0,0 +1,1502 @@ + + + + + + + + + + + + +MBSE BBS FAQ & Howto + + + +
+

MBSE BBS FAQ and Howto.

+
Last updated 31-Jan-2005
+ +
+Authors: P.E. Kimble aka King Kimerud            kimerud@bayhaus.org
+         Michiel Broek                           2:280/2802
+         Rick van Ruth                           3:640/954
+	 David Gonzalez                          4:930/1
+

+

Introduction

+

+This FAQ is a work in progress. It is not complete, nor does its author +claim that it is complete. This FAQ only answers questions pertaining to +using MBSE BBS on your GNU/Linux box. It is a compilation of previous questions +that Michiel Broek has recieved and answered from us newbies in getting +MBSE up & running. +

+ +
    +
  1. Installation

    +

      +
    1. Why do I have to install MBSE in the /opt directory?
    2. +
    3. What other operating systems will MBSE run on?
    4. +
    5. Will MBSE ever be ported to DOS/Windows or OS/2?
    6. +
    7. What does the quest switch in the bbs user setup mean?
    8. +
    9. How do I monitor as the things happen?
    10. +
    11. How do I start mbsebbs from inetd or xinetd?
    12. +
    13. I just installed mbse, now I get a Socket send failed error 2
    14. +
    +

  2. +
  3. Fidonet Setup

    +

      +
    1. The nodelist compiler crashes, why?
    2. +
    3. What is the purpose of the "Comment" line in the tic area setup?
    4. +
    5. How do I poll a node?
    6. +
    7. I created a filerequest but mbcico doesn't call out.
    8. +
    9. Does MBSE support fidonet via ftp feeds?
    10. +
    11. The tosser and mbmsg program are slow, why?
    12. +
    13. How can I use an external netmail tracker with MBSE?
    14. +
    15. I am having problems with dates when unarchiving .arc files.
    16. +
    +

  4. +
  5. Internet Setup

    +

      +
    1. Posting newsmessages to the newsserver fails.
    2. +
    3. FTP fidonet feeds how-to.
    4. +
    5. Polling a internet node fails
    6. +
    7. Dialup script examples for MBSE
    8. +
    9. BBS users cannot get their email on Debian
    10. +
    +

  6. +
  7. BBS Setup

    +

      +
    1. How do I to set up MBSE for ISDN?
    2. +
    3. How do I use GoldED together with MBSE?
    4. +
    5. How do I use MsgEd together with MBSE?
    6. +
    7. How do I adopt a directory full of files to the bbs?
    8. +
    +

  8. +
  9. Doors Setup

    +

      +
    1. How do I run DOS doors under MBSE BBS?
    2. +
    3. Dosemu compile tips
    4. +
    5. Setting up for InterBBS games.
    6. +
    7. Door Maintenance.
    8. +
    +

  10. +
+ +BackGo Back +
+ +

1. Installation.

+ + + + + + + + + + + + +
Q 1.1Why do I have to install MBSE in the /opt directory?
A 1.1 The /opt is for extra applications, when mbse is installed there + it is easier to upgrade the OS. If you insist on installing in /usr/local + the choose /usr/local/mbse. +
+Up +

+ + + + + + + + + + + + +
Q 1.2 What other operating systems will MBSE run on?
A 1.2 Currently only on most GNU/Linux distributions, FreeBSD and NetBSD. + The author, Michiel Broek, has made a valiant effort ensuring that +MBSE will recognize and install on the major distributions of GNU/Linux. +
+Up +

+ + + + + + + + + + + + +
Q 1.3 Will MBSE BBS ever be ported to DOS/Windows or OS/2?
A 1.3 No.
+Up +

+ + + + + + + + + + + + +
Q 1.4 What does the guest switch in BBS user setup mean?
A 1.4 Nothing yet.
+Up +

+ + + + + + + + + + + +
Q 1.5 How do I monitor as the things happen?
A 1.5 tail -f /opt/mbse/log/system.log or start mbmon.
+Up +

+ + + + + + + + + + + + +
Q 1.6 How to start mbsebbs from inetd or xinetd?
A 1.6 This is described in the documentation of the + mblogin program.
+Up +

+ + + + + + + + + + + + +
Q 1.7 I just installed mbse, now I get a Socket send failed error 2.
A 1.7 With a normal system boot the mbtask daemon will be started + by one of the systems init scripts. If you just installed mbse you need + to do this for the first time manually. As user mbse issue the + following commands:
mbtask
mbstat open

+ This will start the daemon, the daemon creates the default + databases. Then you can use mbsetup to configure your new system. +
+Up + +


+

2. Fidonet setup.

+ + + + + + + + + + + + +
Q 2.1 The nodelist compiler crashes, why?
A 2.1Note: From previous experience, it is vital that you follow + the docs closely. Also, ensure that you have a copy of a valid nodelist + and nodediff file. I have ran into problems where either the noddiffs + don't match the nodelist, the crc checks fail, or I have files from + two different zones. I have even had to back up several months before + finding a valid noddiff that would match the nodelist.
+Up +

+ + + + + + + + + + + + +
Q 2.2 What is the purpose of the "Comment" line in the tic area setup?
A 2.2The downlinks will see this when receiving FileMgr replies. + It is meant only as a description for the filearea.
+Up +

+ + + + + + + + + + + + +
Q 2.3 How do I poll a node?
A 2.3 mbout poll f2802.n280.z2
+Up +

+ + + + + + + + + + + + +
Q 2.4 I created a filerequest but mbcico doesn't call out.
A 2.4 You need to add a poll for that node to do the call.
+Up +

+ + + + + + + + + + + + +
Q 2.5 Does MBSE support fidonet via ftp transfers?
A 2.5 Yes, but only the passive side. Refer to 3.2.
+Up +

+ + + + + + + + + + + + +
Q 2.6The tosser and mbmsg programs are slow, why?
A 2.6 Tossing mail and linking message areas are background tasks. + When mbse was first developed the hardware was not fast enough to run + these programs at full speed. The mailer could give CRC errors and the + bbs seemed to stop now and then. To overcome this problem all programs + started with the -quiet switch (background jobs) are stopping for short + periods so that they would use less system resources. Systems with SCSI + disks or other fast and well designed machines don't have a need for that + slowdown. In mbsetup menu 1.5.17 is the setting for the speed of all utility + programs, the default is slow. You might try this set to fast and see what + happens on your system.
+Up +

+ + + + + + + + + + + + +
Q 2.7How can I use an external netmail tracker with MBSE?
A 2.7If the netmail tracker can work on .pkt files you could try to + install it into mbfido. It can call a external program to process incoming + .pkt files before mbfido does something with it. That option was built a + few years ago for extra Y2K checks. (The pktdate program of Tobias Ernest).
+Up +

+ + + + + + + + + + + + +
Q 2.8I am having problems with dates when unarchiving .arc files.
A 2.8If you are experiencing a problem with the dates on arc files + showing as January 1970 or similar when extracted using Arc v5.31 for linux + then obtain "nomarch". MBSE will detect nomarch during configuration/install + and set your archiver.data file accordingly. Nomarch extracts .arc files + and keeps the original file date.
+Up + +


+

3. Internet setup.

+ + + + + + + + + + + + +
Q 3.1 Posting newsmessages to the newsserver fails.
A 3.1Check if you need the "mode reader" command for the newsserver. + Set this flag in mbsetup 1.15.5
+Up +

+ + + + + + + + + + + + +
Q 3.2 How do I configure MBSE for my ftp filenet feeds?
A 3.2Follow the next steps to setup your system for FTP clients. +
    +
  1. As root, add a new group to your system: groupadd bbsftp.
  2. +
  3. Make sure there is a directory /opt/mbse/var/bbsftp. This directory + should be owned by mbse, group bbs and have mode 0775.
  4. +
  5. Add an invalid shell to /etc/shells, /usr/bin/false is good.
  6. +
  7. Install an FTP server, the examples here are for ProFTPD.
  8. +
  9. In /etc/proftpd.conf make sure there are the following lines: +
    +# Anonymous ftp and members of group bbsftp have a chroot environment.
    +# DefaultRoot     ~ bbsftp
    +
    + This will make sure that users who are member of the bbsftp + group have a chrooted directory structure for their ftp directories. + Also make sure the line Umask 022 is changed to Umask 002.
  10. +
  11. Add a username for the node you whish to give an FTP feed. + Use the following as root: +
    +useradd -g bbs -G bbsftp -d /opt/mbse/var/bbsftp/username
    +    -s /usr/bin/false -c "FTP Account for username" -m username
    +
    + Note: this is one line! There will now be a user added and + have a home directory of /opt/mbse/var/bbsftp/username. Make sure + that directory has permission 0775 or 0770. Create in the username + directory two other directories, inbound and outbound. They must + be owned by the user and be a member of group bbs and have mode 0775. + The modes 077x are needed because the user and mbse must be able to + read and write to these directories.
  12. +
  13. Try to login with ftp from some other system with the choosen + username and his password and check the changes until now. You should + not be able to escape from the directories of this user and you should + be able to upload files, download and delete files. Check also if you + uploaded a file if user mbse can delete that file and also put a file + in the users ftp directory as user mbse, and check that you can download + and delete is as ftp user.
  14. +
  15. Make sure for the node you want to change there is no mail + left in the outbound. Now start mbsetup, menu 7, open the setup + of the node that will use ftp. In screen 3, items 7 and 8, set these + to Directory. Now enter screen 8, here you will setup the directory + session. +
    +       7.8  EDIT NODE DIRECTORY SESSION
    +
    +            Outbound settings
    +       1.   Files path      /opt/mbse/var/bbsftp/username/outbound
    +       2.   Check for lock  Yes               3.   Wait clear lock Yes
    +       4.   Check lockfile  /opt/mbse/var/bbsftp/username/lock.bsy
    +       5.   Create lock     Yes
    +       6.   Create lockfile /opt/mbse/var/bbsftp/username/lock.bsy
    +       
    +            Inbound settings
    +       7.   Files path      /opt/mbse/var/bbsftp/username/inbound
    +       8.   Check for lock  Yes               9.   Wait clear lock Yes
    +       10.  Check lockfile  /opt/mbse/var/bbsftp/username/lock.bsy
    +       11.  Create lock     Yes
    +       12.  Create lockfile /opt/mbse/var/bbsftp/username/lock.bsy
    +
    + Save this and you are ready.
  16. +
  17. A final note, since this user is in group bbs and not in the + bbs userdatabase he can never telnet to your system with this account + and get a shell. The user doesn't even have a valid shell.
  18. +
+
+Up +

+ + + + + + + + + + + + +
Q 3.3Polling a internet node fails.
A 3.3There are several reasons why mbcico refuses to call an internet + node, most problems are nodelist related. A internet node with binkp + protocol should be listed with the flags CM,IBN before mbcico will + make a call. Also, in the nodelist system name field there should + be the hosts full qualified domainname so that mbcico can get that + node's IP address. If one of these items are missing, the node will + not be called. To correct this problem there are two options, make + sure the node is listed with a dns name and proper flags in the nodelist. + The second option is to add a setup record for that node and fill in + the nodelist override fields. You can find these in menu 7.3, item + 5 can be filled with the nodelist flags, ie. CM,IBN and item 6 can + be used to give that node's fdn or IP address. +

+ If the call still fails there are several things that must be + right before mbcico makes any internet call. In mbmon, screen 2 (SERVER + STATS) there are flags that indicate if the system is running, internet + is available and the bbs is open. If one of these is No, then no call will + be made. (For POTS the Internet flag does not matter of course). +

+ In mbsetup, screen 18 (taskmanager), you need to set the maximum + TCP sessions to allow. This is inbound and outbound together. So if you set + this to 3 and 3 or more systems are already calling in via internet, your + system will not call anymore until the amount of TCP sessions drops below 3. +

+ If you set this to high on an average cable/adsl connection, + you can get into trouble because you use up all upstream bandwidth. (We have + seen a lot of errors at a busy when the upstream speed was 64K and downspeed + 512K and about 4 sessions together). A good rule seems 1 TCP session for + each 32K bandwidth. +

+ Then turn in that same screen debug on. After a minute mbtask + rereads his configuration. +

+ Make a poll with mbout poll <node>. +

+ Watch the mbtask logfile and see what it does for that node. It + should be added to the calllist. If not, it might be still a nodelist problem.

+Up +

+ + + + + + + + + + + + +
Q 3.4Dialup script examples for MBSE
A 3.4Dialup Script using mclient: +
+#!/bin/sh
+#
+# Dialup script for MBSE BBS.
+#
+#============================================================================
+# Copyright (C) 1997-2002
+#   
+# Michiel Broek                FIDO:           2:280/2802
+# Beekmansbos 10
+# 1971 BV IJmuiden
+# the Netherlands
+#
+# This file is part of MBSE BBS.
+#
+# This BBS 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, or (at your option) any
+# later version.
+#
+# MBSE BBS 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 MBSE BBS; see the file COPYING.  If not, write to the Free
+# Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+#============================================================================
+#
+#
+# Enter commands to make the dialup connection and to hangup the connection.
+#
+DIALCMD="mclient -d -c DDS"
+HANGUPCMD="mclient -k"
+#
+# Log to syslog
+#
+LOGGER="logger -p user.notice -t basename $0$$]"
+
+if [ -z "$DIALCMD" ]; then
+    echo "This script is not configured, edit this script to use it."
+    exit 1
+fi
+
+echo "Dial internet start" | $LOGGER
+#
+# Do 3 attempts to connect
+#
+connect=0; try=0;
+while let 'connect == 0'
+do
+    # Count connect attepts
+    #
+    let try=try+1
+    if [ $try == 4 ]; then
+        echo "No internet connection, giving up" | $LOGGER
+        $HANGUPCMD >>/dev/null
+        exit 1
+    fi
+
+    echo "Call attempt $try"    | $LOGGER
+    $DIALCMD >>/dev/null
+    i=60;
+    while let 'i > 0' && let 'connect == 0'
+    do
+        if [ -f $MBSE_ROOT/var/sema/is_inet ]; then
+            connect=1
+            echo "mbtask detected internet"     | $LOGGER
+        fi
+        let i=i-1
+        sleep 1
+    done
+    #
+    # Check if we have a connection
+    #
+    if [ ! -f $MBSE_ROOT/var/sema/is_inet ]; then
+        echo "Failed, 10 seconds pause ..."     | $LOGGER
+        sleep 10
+    fi
+done
+
+#
+# Here we have a connection, now make all needed polls
+#
+$MBSE_ROOT/bin/mbout poll f5003.n280.z2 f19.n280.z2 -quiet
+
+#
+# Now we wait until the do_inet semafore appears, we
+# timeout at 25 seconds, must be enough.
+#
+i=25;
+while let 'i > 0'
+do
+    if [ -f $MBSE_ROOT/var/sema/do_inet ]; then
+        i=0;
+    else
+        let i=i-1;
+        sleep 1
+        echo "wait do_inet $i"
+    fi
+done
+
+#
+# Now test until the do_inet semafore is gone.
+# Timeout is one hour.
+#
+i=3600;
+while let 'i > 0'
+do
+    if [ ! -f $MBSE_ROOT/var/sema/do_inet ]; then
+        i=0;
+    else
+        let i=i-1;
+        sleep 1
+        echo "wait ready $i"
+    fi
+done
+
+echo "Internet sessions done, hangup"   | $LOGGER
+$HANGUPCMD >>/dev/null
+echo "Script ready"                     | $LOGGER
+exit 0
+
+=================================================
+
+ Dialup Script using diald: + +
+=================================================
+#!/bin/sh
+
+PATH=/opt/mbse:/opt/mbse/bin:/usr/bin:/usr/local/bin:/bin:/usr/sbin:/usr/local
+/ sbin:$PATH
+cd /opt/mbse
+if [ -f /opt/mbse/tmp/ip.up ] ; then
+        exit
+fi
+echo "up" > /var/run/diald.ctl
+sleep 15
+
+ping -c 10 -w 10 mail.iol.ie
+if [ -e /var/run/ppp0.pid ]  ; then
+        touch /opt/mbse/tmp/ip.up
+   cd /opt/mbse
+   echo "Fetching News"
+   /opt/mbse/fetchnews
+   echo "Synching clock"
+   telnet 192.168.0.2 9049
+   bin/mbfido news
+   echo "Fetching Mail"
+   /usr/bin/fetchmail -f /opt/mbse/.fetchmailrc
+   bin/soup
+        if [ ! 'cat /opt/mbse/irex/s/rexbusy.0 | xargs ps --no-header' ] ;
+        then
+                rm /etc/ftn/irex/s/rexbusy.0
+        fi
+
+   ./rexl
+   fetchmail -f /opt/mbse/.fetchmailrc
+   ./rexl -sf m
+   /opt/mbse/bin/bink
+
+  echo down > /var/run/diald.ctl
+
+  bin/bres.sh  # >> /dev/null 2>&1
+fi
+rm /opt/mbse/tmp/ip.up
+
+==================================
+
+
+Up + + + + + + + + + + + + +
Q 3.5BBS users cannot get their email on Debian
A 3.5 + Debian Linux uses for normal users a security model with private user groups. + The users of the bbs are all in group bbs. Some pop3 servers do not handle + that situation well and don't show the email for bbs users that is delivered + in /var/mail. If you choose to use qpopper it will work. +
+Up + +


+

4. BBS setup.

+ + + + + + + + + + + + +
Q 4.1 How to set up MBSE for ISDN.
A 4.1Contributed by: J. Beekhuizen, 2:280/1018 +

+ Of course, you have to configure and build your kernel for ISDN + support and the correct drivers for your card. It is beyond the scope + of this document to explain how to do that. +

+ To your /etc/inittab file add the following lines for your ISDN + devices ttyI0 and ttyI1.

+
+# ISDN lines
+I1:23:respawn:/usr/local/sbin/mgetty -x 4 -i /opt/mbse/etc/issue ttyI0
+I2:23:respawn:/usr/local/sbin/mgetty -x 4 -i /opt/mbse/etc/issue ttyI1
+
+ To your mgetty.config file [/usr/local/etc/mgetty_sendfax/mgetty.config + on my system] set up the ttyI0 and ttyI1 ports. With AT&E you set + the MSN/EAZ the device should listen to. This should for an MSN be your + telephone number with the area code but without the leading + 0. For an EAZ the last digit of your EAZ. +

+ The ISDN ports +

+port ttyI0
+modem-type data
+init-chat "" ATZ OK
+AT&E714015437&W0 OK 
+AT&B512 OK
+
+port ttyI1
+modem-type data
+init-chat "" ATZ OK 
+AT&E714017198&W0 OK
+AT&B512 OK
+
+ From the mbsetup menu #5 "Edit Modem types" configure the ISDN + modem type. +
+	Modem type   ISDN Linux
+	Init string  ATZ\r
+	Init string
+	Init string
+	OK string    OK
+	Hangup       \d\p\p\p+++\d\p\p\pATH0\r
+	Info command ATI2\r
+	Dial command ATD\T\r
+	Connect      CONNECT 64000
+	Connect      CONNECT
+	[...]
+	Reset cmd    ATZ\r
+	Error string BUSY
+	Error string NO CARRIER
+	Error string NO DIALTONE
+	Error string NO ANSWER
+	Error string RING\r
+	Error string ERROR
+	Error string
+	Error string
+	Error string
+	Error string
+	Cost offset  0
+	EMSI speed   28800                   ! not relevant for ISDN
+	Strip dashes No
+	Available    Yes
+
+ And from #6 "Edit TTY lines info" the ISDN lines +
+	TTY name     ISDN Line 1
+	Device name  ttyI0
+	Phone or DNS 31-71-4015437
+	Line speed   64 kbits
+	Fido flags   CM,XA,MO,X75
+	Equipment    ISDN
+	Available    Yes
+	Auth. log    No
+	Honor ZMH    Yes
+	Callout      Yes
+	Modem type   ISDN Linux
+	Locked speed 0                                 ! not relevant for ISDN
+	EMSI name    The Wizard's ISDN line 1
+
+	TTY name     ISDN Line 2
+	Device name  ttyI1
+	Phone or DNS 31-71-4017198
+	Line speed   64 kbits
+	Fido flags   CM,XA,MO,X75
+	Equipment    ISDN
+	Available    Yes
+	Auth. log    No
+	Honor ZMH    Yes
+	Callout      Yes
+	Modem type   ISDN Linux
+	Locked speed 0
+	EMSI name    The Wizard's ISDN line 2
+
+
+ T-t-that's all folks :))
+Up +

+ + + + + + + + + + + + +
Q 4.2 How do I use GoldED together with MBSE?
A 4.2Since MBSE BBS version 0.33.12 GoldED and MBSE BBS can be used + together without problems as long as you use it to read the sysop mail. + The mbsetup program can export a file called /opt/mbse/etc/golded.inc + which will contain your main Aka's, Aka matching, sysop name and all your + mail areas. This file is only (re)created if you change the global settings + or one of the mail areas. The first time you must force this by making + a change somewhere. +

+ Now create /opt/mbse/etc/golded.cfg, here is what I wrote: +

+; GoldED.cfg
+;
+; Internet Addressing
+;
+INTERNETADDRESS Michiel_Broek@f2802.n280.z2.fidonet.org
+INTERNETGATE UUCP 2:292/875
+;
+;
+OUTBOUNDPATH /opt/mbse/var/bso/outbound
+REPLYLINK chain
+STYLECODES yes
+;
+;
+; MESSAGE READER
+;
+DISPMSGSIZE KBYTES
+DISPATTACHSIZE KBYTES
+DISPLOCALHIGH YES
+DISPPAGEBAR YES
+VIEWHIDDEN YES
+VIEWKLUDGE NO
+VIEWQUOTE YES
+;
+INCLUDE /opt/mbse/etc/golded.inc
+;
+; The end.
+
+ Put in /opt/mbse/.profile the following line: export GOLDED=$HOME/etc +

+ When you now start GoldED you use it as the sysop. Make sure that + the sysop's userrecord is the first user in the MBSE BBS userbase. If not, + the lastread pointers are not right. The GoldED nodelist compiler can be + added to the setup in menu 18.

+Up +

+ + + + + + + + + + + + +
Q 4.3 How do I use MsgEd together with MBSE?
A 4.3Since MBSE BBS version 0.35.05 MsgEd and MBSE BBS can be used + together without problems as long as you use it to read the sysop + mail. The mbsetup program can export a file called /opt/mbse/etc/msg.txt + which will contain your mail areas setup. This file is only + (re)created if you change the global settings or one of the mail + areas. The first time you must force this by making a change somewhere.
+Up + + + + + + + + + + + + +
Q 4.4 How do I adopt (batch upload) a directory full of files to my BBS'es file base?
A 4.4Written by: Russell Tiedt. +

+ Easy using the script below, provided the file archives (*.zip, *.rar, *.arc, + *.lha, etc.) all contain "file_id.diz" files. +

+ Sort the files in tempory directries that correspond to the filebase area, ie. + /dos4 (DOS files - filebase area no 4) +

+ Then copy the script below to the directory, edit the number of the filebase + that the files must be batch uploaded to, to the number that corresponds to + the required filebase. (On my BBS system the DOS file section corresponds to + the number 4, hence the name above for the tempory directory used above) I + copy all files to be batch uploaded to the DOS file section, to the /dos4 + directory, copy the script below to the /dos4 directory, edit the script so + that it uploads to the DOS filebase (4) and run it. +

+for file in `ls` ; do
+  mbfile adopt 4 $file "Dummy description"
+done
+
+ NOTE: the 4 in the script above, indicates the filebase/filearea that the + files will be batch uploaded to. + + For archives that have/contain a file_id.diz file, "Dummy description" will be + replaced with the content of the "file_id.diz file of that archive, if no + file_id.diz exists in the archive, then "Dummy descrition" will appear in the + description field of the files.bbs file for the file area it gets uploaded to. +

+ If the files don't have/contain file_id.diz files, then create and insert in + the archive, a file_id.diz file having a suitable description of the content + of the archive, then follow the instructions above. +

+ For *.exe and *.com files, as well as other files that are not archived ie. in + *.zip/*.rar/*.arc/*.lha/*.lhz/*.zoo etc. Create a file_id.diz file for the + file, then make an archive using the archiver of your choice containing the + file and the file_id.diz you created for it, then follow the instructions + above. +

+Up + +


+

5. Doors setup.

+ + + + + + + + + + + + +
Q 5.1 How do I run DOS doors under MBSE BBS?
A 5.1 +
+Written by: Redy Rodriguez, sysop of Parolas BBS 2:348/609
+Fidonet:    Redy rodriguez 2:348/609
+Email:      redy@users.sourceforge.net
+            Redy_Rodriguez@f609.n348.z2.fidospain.org
+
+

+Note: the next method is obsolete, with newer versions of dosemu it is +possible to run the doors without sudo but with user privileges. See the +doors page for details. The information below is for +old versions of dosemu. +

+ NO WARANTEE +

+ The information gathered here, works for the indicated intention. + It is proven and working in PAROLAS BBS, however, I do not guarantee + that it works correctly in all the cases. The author is not responsible + for the damage this can cause. If you follow the instructions, and you + get not the expected result, or as a result of it you get undesired results, + you loose data or destroy your system, you you will be the only person + in charge. +

+ INTRODUCTION +

+ This document describes how I have been able to execute MS/DOS + doors in MBSEBBS. Probably it is not the best way to do it, but this + is the one that works for me. If somebody finds one more more effective, + or simpler or safer a solution, then I like to hear this solution. +

+ WHAT IS NEEDED? +

+ MBSEBBS is correctly compiled and working, in my case I have the + version 0.33.19, that is at the moment the most recent and stable, I suppose + that this method can be valid for newer versions. DOSEMU 1.0.2 I have tried + previous versions, but these do not work correctly with virtual ports. You + can download dosemu.1.02.tgz from www.dosemu.org + , you may also need to download the freedos archive dosemu-freedos-bin-1.02.tgz. + A partition with MS/DOS, I have on my disc a partition with installed + MS/DOS, and that is the one that I use, but I'm sure that many doors + could work correctly with the freedos. You also need sudo. Sudo + is a utility that let's ordinary users execute certain programs as superuser, + this is available with almost all GNU/Linux distributions. +

+ COMPILING DOSEMU +

+ Unpack dosemu in some directory, for example /usr/src, then changed + into that directory and execute 'make'. When this is ready we have + dosemu compiled. If we already had a previous version of dosemu it is + advisable to uninstall it before continuing. Copy dosemu-freedos-bin-1.02.tgz + to the toplevel directory of the dosemu source and execute: +

+./install_systemwide -fd dosemu-freedos-bin-1.02.tgz
+
+ In the directory etc, within the directory where we have decompressed + the source code of dosemu we have configuration examples. Create the + directory /var/lib/dosemu if it does not exist the directory, and copy + global.conf to that directory. Also copy dosemu.conf to directory /etc + and copy dosemu.users.secure as dosemu.users to /etc. +

+ CONFIGURE THE DOS PARTITION +

+ Now we must configure the dos partition, in my case this exists + as a mounted dos partition in /dos/c. If this is not the case then you + could work with an image of freedos. I have created in my dos partition + a directory c:\doors where I install all doors that I want to use, and + a file called c:\doors.bat with the following contents: +

+@echo off
+c:
+cd \doors
+if exist %1.bat call %1 %2 %3 %4 %5 %6 %7 %8 %9
+c:\dosemu\exitemu
+
+ Change to the directory /var/lib/dosemu and create directory + called for example 'c': +
+mkdir c. 
+
+ A link to the mounted partition could be made but I prefer + to create a new directory and in that directory make links to dos program + which are only of interest for us. Many programs and directories of the + dos partition are not needed in dosemu and to run doors. Change to the + created directory and make links to everything what we have in our dos + partition (we will erase soon what we do not need). Autoexec.bat and + config.sys must copied instead of making links so we can modify them, because + surely we will want that they are different in dosemu, then in real dos. +
+cd c
+ln -s /dos/c/* .
+rm autoexec.bat
+rm config.sys
+cp /dos/c/autoexec.bat config.sys .
+
+ Create a directory dosemu and copy the typical utilities of dosemu. +
+mkdir dosemu 
+cp /usr/src/dosemu-1.02/1.0.2.0/commands/* dosemu
+
+ Now we modify the copy of config.sys and autoexec.bat to erase + everything what is not necessary to execute our games as doors, like + drivers for cdrom, mouse etc... We will clear the keyboard driver 'KEYB + XX' and make sure that in the path in autoexec.bat to include the directory + c:\dosemu. Also load the fossil emulator, for example add these two lines: +
+path %PATH%:c:\dosemu
+c:\dosemu\fossil
+
+ If there is another fossil, such as bnu or x00 in config.sys + or autoexec.bat we clear all references to these, we will load them + if that is necessary in the file that it executes the door when needed, + this can be necessary for some doors and for other not. Now we can erase + all the links to the directories who are not necessary, and that we do + not want that they are visible. +

+ Then edit the file /etc/dosemu.conf and look for the line that + begins with "$_hdimage =" and change that to: +

+$_hdimage = "c"
+
+ Now login as root and you should be able to execute our dos + emulator by executing '/usr/bin/dosemu.bin' +

+ (to leave dosemu type in exitemu) +

+ CONFIGURING SUDO +

+ Normally the dos partition is not accessible to the users of the + BBS, except from within dosemu, and to be able to have access without activating + the setuid bit of dosemu, we use sudo so that any user of the BBS can execute + dosemu.bin as root. As root execute visudo to edit the configuration file + of sudo add the lines: +

+%bbs   ALL=NOPASSWD:/opt/mbse/bin/bbsdoor.sh
+%bbs   ALL=NOPASSWD:/opt/dosemu/bin/dosemu.bin
+
+ The first command is a script that takes care of copying the + file door.sys to the dos partition, the second line is to allow to + execute dosemu.bin. Any user of group BBS can execute these commandos + like root without password is asked. +

+ In order to test that this works login as user mbse and execute: +

 
+sudo dosemu.bin
+
+

+ INSTALLING A DOOR +

+ First we need a pair of scripts. These scripts are installed when + you did install MBSE. These scripts are needed to execute the doors and are + installed in /opt/mbse/bin: +

+--- rundoor.sh ---
+
+#!/bin/bash
+#
+# rundoor.sh - Never call this script directly, create a symlink
+#              to thisfile with the name of the door. For example
+#              tu run the door ilord do:
+#              cd /opt/mbse/bin
+#              ln -s rundoor.sh ilord
+#
+# by Redy Rodriguez and Michiel Broek.
+#
+DOOR=`basename $0`
+COMMANDO="\" doors $DOOR $*\r\""
+
+/usr/bin/sudo /opt/mbse/bin/bbsdoor.sh $DOOR $1
+/usr/bin/sudo /opt/dosemu/bin/dosemu.bin \
+-F /var/lib/dosemu/global.conf \
+-I "`echo -e serial { com 1 virtual }"\n" keystroke $COMMANDO`"
+reset
+tput reset
+stty sane
+
+--- bbsdoor.sh ---
+
+#
+#  Initialize DOS environment before starting a bbs door.
+#  Parameters: $1 = name of the door
+#              $2 = the nodenumber for this session
+#
+#  by Redy Rodriguez, 22-Oct-2001
+if [ "$1" != "" ]; then
+    if [ "$2" != "" ]; then
+        mkdir -p /dos/c/doors/node$2 >/dev/null 2>&1
+	# Copy door.sys to dos partition
+	cat ~/door.sys >/dos/c/doors/node$2/door.sys
+	# Create .dosemu/disclaimer in user home to avoid warning
+	if [ ! -d $HOME/.dosemu ]; then
+	    mkdir $HOME/.dosemu
+	fi
+	if [ ! -f $HOME/.dosemu/disclaimer ]; then
+	    touch $HOME/.dosemu/disclaimer
+	fi
+    fi
+fi
+
+ The script rundoor.sh is never called directly, simply create + a link with the name of the door to this file, this name must be the + same as the one of the .bat file that starts the door in the doors directory + of the dos partition. Let me explain this with an example: +

+ I have chosen the door Virtual Sysop, but it could be any other + door. My experience says to me that not all doors work correctly with + a serial port in virtual mode. This one is working at Parolas BBS. +

+ Unpack Virtual Sysop in the dos partition, in the directory c:\doors\vsysop. + Execute as user mbse 'sudo dosemu.bin' and make sure that the door + works in local mode (these commands are for this door): +

+cd doors
+cd vsysop
+vsysop -local
+
+ If everything is correct then create the file c:\doors\vsysop.bat + with the following contents: +
+--- vsysop.bat ---
+
+@echo off
+C:\COMUNIC\X00\X00 E B,0,57600
+cd vsysop
+vsysop -D c:\doors\node%1\door.sys -BBSNAME PAROLAS
+deltree /y c:\doors\node%1
+C:\COMUNIC\X00\X00
+cd ..
+
+ Before passing the control to dosemu, the file door.sys will + be copied to c:\doors\node???? where the ???? is the node number from + which the door is invoked (to allow that several users can execute the + door at the same time). This nodenumber also is passed as the first parameters + to the .bat file, this is to indicate to which directory to copy the door.sys + file. +

+ The Virtual Sysop door supports door.sys and that is the only + dropfile that is generated by mbsebbs and that is supported by most + of the doors. If you need another format you must use a converter to change + the format of the dropfile. +

+ I use the fossil X00, I have it installed in C:\COMUNIC\X00 and + this door works for me correctly with these parameters, it is alos possible + that it works without X00 or that you can load another fossil. +

+ Now create a link to rundoor.sh in /opt/mbse/bin called vsysop. + The name must be the same one that the name of the .bat file created + in the dos partition, but without the extension bat. +

+ln -s /opt/mbse/bin/rundoor.sh /opt/mbse/bin/vsysop
+
+ Now we execute mbsetup and enter the menu setup to add an entrance + like this (It puts option 16 to Yes): +
+    8.3. EDIT MENU ITEM
+
+    1.  Sel. key  V
+    2.  Type nr.  7         Run external program in shell
+    3.  Opt. data /opt/mbse/bin/vsysop /N
+                  1234567890123456789012345678901234567890123456789012345678901234
+    4.  Display
+    5.  Security  0     --------------------------------
+    6.  Min. age  0
+    7.  Max. lvl  0
+    8.  Password  <null>                    13. No door.sys No
+    9.  Credit    0                         13. Y2K style   No
+    10. Lo-colors Normal display color      14. Use Comport Yes
+    11. Hi-colors Bright display color      15. Run nosuid  Yes
+    12. Autoexec  No                        16. No Prompt   Yes
+
+ And that is everything...
+Up +

+ + + + + + + + + + + + +
Q 5.2 Dosemu compile tips
A 5.2 +
+Written by: Rick Van Ruth, sysop of Vampyre's Heaven BBS 3:640/954
+
+ Dosemu still exhibits some file locking behaviour and this needs + to be overcome, especially if you are running multinode door games. The + following information was supplied by Bob Newell of Chung Kuo BBS (telnet + chungkuo.org) and I reiterate it here. +

+ There is an issue in that GNU/Linux file locking does not map precisely + to DOS file locking. You need to patch DOSEMU and build a special version + to deal with this problem. Find the file "dosext/mfs/mfs.c" in your + DOSEMU source tree. Locate the following lines: +

+case DENY_ANY:
+fl.l_type = F_RDLCK;
+
+Change the second line to 
+fl.l_type = !writing ? F_RDLCK : F_WRLCK;
+
+ and build a new version of DOSEMU. +

+ To solve a problem of slow screen painting, locate "base/async/int.c" + in your source tree. Locate +

+case 0x2C:
+
+and just below, comment out or delete the line
+
+usleep(INT2F_IDLE_USECS);
+
+ and rebuild your DOSEMU. +
+ It is recommended to use both tips above as it will not harm + any dos door games.
+Up +

+ + + + + + + + + + + + +
Q 5.3 Setting up for InterBBS games.
A 5.3 +
+Written by: Rick Van Ruth, sysop of Vampyre's Heaven BBS 3:640/954
+
+ There are 2 methods for providing InterBBS setup. If your system + merely connects to one host for your games packets you need only perform + a few simple steps to have it working. If your system is a Host for InterBBS + games you will also need to add a script to separate different packets + for different downlink systems. +

+ Common to Both Methods:
+ With most BBS games you will need 2 directories in your dos + filesystem area. One for the inbound packets and one for netmail messages + door games produce to send outbound packets. +

+ The easiest way to solve this is by creating symlinks from your + MBSE directories into the directory where your dos doors live (c:\doors). + The 2 directories you wish to link are /opt/mbse/var/inbound and /opt/mbse/var/msgs + - link them into your dos directories doors directory with the same + names ie: "inbound" and "msgs". Now according to dosemu you will have + a c:\doors\inbound and a c:\doors\msgs. We do not actually use the "msgs" + directory for anything other than a place to tell games where to write + its netmails to. These "netmails" are subsequently deleted from the system, + but the games need to be able to write them there. +

+ 1. The Easy Way - Single Host System:
+

+ 1A. First of all you will realise that door games running under + dosemu usually write files as owner root, chmod 0644. This is not good + for MBSE to transfer these files as it does not have permission to act + on the files. In order to force dosemu to write games files so that MBSE + can act upon them we need to alter /etc/sudoers and change the umask for + root running under sudo. To do this open /etc/sudoers (you must be root + to edit this file) and add the following line at the top of the file before + the specifications: +

+ Defaults               umask=0000

+

+ This will allow dosemu to write files chmod 0666 (read/write everybody) + and MBSE will be able to manipulate them. +

+ For my example I will use the InterBBS dos door game called Barren + Realms Elite (BRE for short). +

+ 1B. Install Bre in c:\doors\bre and setup the necessary files + for its execution as a dos door from MBSE as per the dos doors faq. +

+ 1C. Tell Bre (in its BBS.CFG) that the path for inbound packets + is c:\doors\inbound and the netmail path is c:\doors\msgs Bre will now + automatically process all inbound packets it finds in the inbound directory + for itself. It needs no assistance as it merely searches for the correct + filename in the directory. +

+ 1D. We need to link Bre's outbound path to our host nodes MBSE + mailbox for automatic transfer of games packets. First make sure you + have added an "outbox" for your uplink node in the nodes setup in MBSE + - Section 7, Select Uplink, Menu 1, Section 2 "outbox dir". eg: if your + uplink is 3:640/954 then MBSE will default to creating /opt/mbse/var/boxes/node3_640_954 + as the outbox (I will use this as an example). Note the flavour of your + uplinks node connection will apply to the outbox as well. Thus if that + particular node is set crashmail then anything you put in the outbox will + also be sent crashmail. +

+ Next go to your Bre game directory. You will notice Bre has an + OUTBOUND directory, this is where it places all its game packets that + are to be sent to the uplink. We need to delete this directory and instead + create a symlink to the node outbox instead. If Bre is in c:\doors\bre + then the symlink command will be: +

+ ln -s /opt/mbse/var/boxes/node3_640_954 /dos/c/doors/bre/OUTBOUND +

+ Alter the above depending on where your linux path to your dos + is, also remember linux is case sensitive! Note you can also make as + many symlinks as you like to the nodes outbox, so if you have 2 or 3 + different games you send to that node you can link the outbox to each + games outbound directory. Also if you have different games to different + host nodes just link the game outbound directories to the outboxes of each + node. +

+ Thats it. The system will now process inbound and outbound packets + automatically. You will however need to delete the netmails in the msgs + directory - I have included this in the Door game maintenance section + further on. +

+ If you experience problems with your system polling nodes and + sending the game mail packets while a user is online within the game then + you might wish to use the dos "share.exe" so packet files are not being accessed + by both the game and the mailer at the same time. You can load share.exe + within your doors.bat in dos root directory. +

+ 2. The Hard Way - Multiple Host System +

+ Follow steps 1A, 1B, 1C above, the change occurs for 1D (below). +

+ 1D. We need a script to process the Bre outbound packets and add + them to MBSE's node outboxes path so they are sent. A script on how to do + this follows (with comments ). First remember to create your outboxes for + each node that you transfer games packets to. I will use 3:640/954 as above + and 1:123/456 for this example of 2 systems linked to the one Bre game. +

+ This script should be owned by user "mbse" and have the permissions + (chmod 755) -rwxr-xr-x. It is best kept in /opt/mbse/bin with your + dos game executing scripts. I call this script "dos_poll" +

+------------------------------------------------------------------------
+#!/usr/bin/perl -U
+use File::Basename;
+use File::Copy;
+
+# Define the variables for the outboxes for our links
+$node1 = "/opt/mbse/var/boxes/node3_640_954";
+$node2 = "/opt/mbse/var/boxes/node1_123_456";
+# Define the linux path to Bre's outbound directory
+$bre_path = "/opt/mbse/dos/doors/bre/OUTBOUND";
+
+opendir(DIR, "$bre_path") || die;
+@dirlist = readdir(DIR);
+closedir(DIR);
+
+foreach $filename (@dirlist){
+    $brefile = "$bre_path/$filename";
+    ($filenameOnly, $pathname, $fileExtension) = fileparse($filename, '\..*');
+    
+    if($filenameOnly eq "048b0201") {
+        move("$brefile","$node1"); 
+    }
+    if($filenameOnly eq "048b0203") {
+        move("$brefile","$node2"); 
+    }
+}
+
+# '048b0201' is the packet name Bre creates. You can find out what
+# your packet name is by running BRE PLANETARY and then checking inside
+# the Bre OUTBOUND directory - note no ext on name. You should also check
+# your nodes dat for which is which 048b0201 means from system 2 to system 1
+# so you would be system 2 in the nodes dat and 1 would be 3:640/954
+# 048b0203 is obviously to system 3 in the nodes dat - 1:/123/456 in our
+# example here
+
+------------------------------------------------------------------------
+
+ Thats it. You can run this 'dos_poll' script from the maintenance scripts described below.
+Up +

+ + + + + + + + + + + + +
Q 5.4 Door Maintenance.
A 5.4 +
Written by: Rick Van Ruth, sysop of Vampyre's Heaven BBS 3:640/954
+ Ok, so you can setup doors, run inbound and outbound for interbbs + games. So how do you do maintenance?
+ Again by scripts. Again I will use BRE as an example. First + I create a maintenance batch file in my C: root directory. I have called + it maint.bat and for the bre game it looks like this: +
+cd \doors\bre
+BRE INBOUND
+BRE SCORES
+BRE REQUEST
+BRE PLANETARY
+exitemu
+
+ if you are familiar with Bre you will know this to be a standard + sort of maintenance except for the "exitemu" at the end. That is there + because we are going to use a script to start dosemu and call the maint.bat + - so afterwards we need it to exit dosemu.
+ Now a maintenance script to be called from your cron or whatever + else you are using to execute events on your system. I call this script + "dos_maint" and it also lives in /opt/mbse/bin +
+#!/bin/sh
+#
+COMMANDO="\" maint \r\""
+/usr/bin/sudo dosemu -dumb -E dir > /opt/mbse/log/dos.log -quiet -I "`echo keystroke $COMMANDO`"
+/bin/rm /opt/mbse/var/msgs/*.msg
+#/opt/mbse/bin/dos_poll # Uncomment this line if you are using the Multiple host script
+
+ You will notice this script starts dosemu and calls maint.bat, + and then when its finished there it deletes all those games netmails + and if you run the script for multiple hosts for your games it can call + that as well. Please note the second line is all ONE line, it has most + probably wrapped here. +

+ You will notice that the script calls dosemu and not dosemu.bin, + this is because we need to tell dosemu to open a dumb terminal and not + display to a console or screen. By use of the redirection we redirect + the normal console output to a file, here I have used /opt/mbse/log/dos.log + as that is where all of MBSE's other logs reside. +

+ Once "dos_maint" is run via the cron it will run maintenance on + your dos doors, process inbound/outbound interBBS game packets and have your + outbound packets ready to send. Thats about all there is to do :) +

+ Note: You can make variants on these scripts for running daily + maintenance or just packet processing at certain times of day. They + are just variations on the information above, but if you have questions, + contact me! +

+ Have fun!

+Up + +

+ + diff --git a/html/flow.html b/html/flow.html new file mode 100644 index 00000000..3952a804 --- /dev/null +++ b/html/flow.html @@ -0,0 +1,180 @@ + + + + + + + + + + + +Running a BBS under Unix. + + + +
+
Last update 01-Mar-2007
+

Running a BBS under Unix.

+ +

Introduction

+

+Everyone who has been running a (single line) BBS under DOS until now will +need to understand that running a BBS under Unix (or any other multitasking +os) is completly different of what you are used to. Under DOS things were +quite simple, from AUTOEXEC.BAT you started a new .BAT file that would run +forever and started all needed programs after each other. +The programs that where started +depended on the errorlevel of the previous program. Only one program could +run at the same time. +

+People who had previous run a BBS on another multitasking os, or were running +a BBS on a small lan with a fileserver and workstations for each line, are +already more used to the idea of running more programs at the same time, +and to "signal" what to do next with semafore files. +

+The Unix aproach is more or less the same, but there are more differences. +The main difference is that there is no mailer connected with the modem waiting +for a call, instead there is a getty process watching your modem(s). And for +internet calls, these are started via (x)inetd using standard *nix methods. +Another +big difference is that you don't see what's happening, there is no screen +with the mailer or bbs picture on it. All programs run in the background. If +you don't like that, stop now and go back to your old DOS bbs. It's just the +way everything is done. +

+Programs that must start at specific times (events in DOS), are started from +cron, this is the event scheduler for Unix. With this +program maintenance can be started, polls created etc. For starting programs +when they are needed there is a taskmanager loaded at system bootup. This +taskmanager "watches" the semafore directory of the bbs and will start what +is needed. It will also watch the mailer outbound to see if there are nodes +to call. +

 

+ +

Waiting for a call .....

+

+Under Unix this is done with the mgetty program, this is the +process that is connected with each modem (or ISDN adapter) and waits for a +call. The mgetty program (written by Gert Doering, gert@greenie.muc.de) will +detect the call, and find out what or who did make the call. It can detect +incoming humans who want a login prompt, PPP calls from users who want to +make a PPP connection (browsing your BBS whith netscape for example), A fax +machine trying to deliver a fax and finally a mailer trying to establish +an EMSI, FSC-0006 or FSC-0001 session. The mgetty program is responsible for +starting the right client programs. How to do this is explained in the +installation manuals, but be sure to compile it with Fido and PPP support. +

+For internet calls, via (x)inetd mbsebbs can accept calls from connections on +ports. For example if a connection comes in on port 24554 the mailer is started +in binkp mode. +

 

+ +

A Human is calling.

+

+This could be a bbs user. For each user to login to your bbs there is a +unix account. They automatic create such an account the first time they login +with the bbs account. During the creation of their account the shell that is +installed for there account is the mbsebbs binary, so that's the only thing +that they get if they call in. When they logout the bbs, or drop carrier etc, +the session is ended and mgetty takes over the line again. +Note that they never can get a Unix shell unless you install a door +in the bbs that calls a shell for them. +

+Because for dialin with mgetty the mblogin program is used and not the normal +login program, only bbs users can login. All other users including root are +denied access. +You might consider installing SSH on your system for remote maintenance. +

+It is also possible to install the mblogin program as the login program for +telnet users if you are directly connected to the internet. +

 

+ +

A PPP call is detected.

+

+Installing a PPP server on your system is beyound the scope of this project. +However if you did install it, users can login your bbs with their favourite +browser and use your bbs. Note that the necessary tools to automatic create +newsgroups don't exist at this time. With the proper setup you can automatic +create and maintain html pages for the file areas. +

 

+ +

A mailer call is detected.

+

+If a mailer is detected by mgetty, the mbcico program is started and will +take over from mgetty. It will establish a mail session with the caller and +the mail and or files will be exchanged just like any DOS mailer would do. +After the call, mbcico will hangup and mgetty will take control of your modem +again. If there is any mail received, mbcico will place the semafore mailin +so that another process can take care of the received mail. +

 

+ +

There is mail in the inbound

+

+As I said before, if the mailin semafore is present, the task manager will +then start the mbfido program that will toss the mail, process any files +received and if necessary it will create other semafore's for example to link +the message bases, start the nodelist compiler etc. Note that this can be done +while there may be a new mailsession going on, a bbs user is online, it doesn't +matter. Processing mail and files can be done real multitasking without any +damage to other processes. +

 

+ +

It's time to poll a node

+

+At the time that you whish to poll a node, let cron create "poll" requests. +When a poll is created, the semafore scanout is also created. +The taskmanager will then start mbcico at regular intervals so that mail will +get out. If there is no more mail to send, the scanout semafore is removed. +If a timeslot ends, you can just remove the "poll" requests that didn't succeed. +

 

+ +

It's Zone Mail Hour, so now what

+

+Relax, if you have netmail ready for nodes the +mailer script will try to send these mails to those nodes. If it was crash +mail, and the destination was a non CM node, the mailer will try to send those +mails too. Note that other crashmails are send anytime. Also note that packed +mail and files are not send during ZMH. If a node calls you during ZMH he will +get everything that's waiting, including packed mail and files. The task manager +(more on that later) calculates the Zone Mail Hour from UTC time, you don't +have to change anything for summer- and wintertime. The taskmanager knows about +all zone mail hours of all Fidonet zones (1..6). For othernets, zone mail hour +is taken from the setup as default value. The taskmanager will also handle the +mail for nodes with the Txx flag (FSC-0062) on the right times. +

 

+ +

Daily maintenane

+

+This is started by cron jobs. There is no need to take +your bbs lines down during maintenance, you can do it any time of the day. +I have made several scripts for this, daily, weekly and monthly. +

 

+ +

How about system load

+

+Because GNU/Linux is a 32 bit os, not bothered with a graphical user interface +(unless you install it), it has all the time in the world to serve your +bbs programs. Background programs are build to release time to the Unix os, +they don't need to run fast because it's background processing. The bbs and +the mailer, have a low server load although there is no timerelease build +in. Only the bbs has some short moments when it needs a lot of your system, +for example when a user logs in and scans for new mail. The bbs I run is a +486-DX4 100 MHz, 20 MB ram, with 2 analogue lines, this seems to work fine. +When this system's MOBO died, I used a 386DX33 for several months with +20 MB ram, and the only thing users ever noticed was that scanning for new +mail was slower. I think this is the slowest harware that will work. +However, you must always use 16550A uarts for the COM ports. For best +performance use SCSI disks. I noticed that old 5"FH SCSI disks perform better +for bbs usage then modern EIDE disks. This is probably caused by the fact that +the kernel needs more time for the cheap IDE bus. +If you want to use X11 on your bbs, you need more ram and a faster CPU or a +separate machine via a lan and export the display to that machine. Currently the +smallest amount of memory you need is 36 MB, and that amount is only needed if +you use a virus scanner which needs more memory then mbse. +

+ +BackGo Back +

+ + diff --git a/html/ftsc/index.htm b/html/ftsc/index.htm new file mode 100644 index 00000000..5c6d11ed --- /dev/null +++ b/html/ftsc/index.htm @@ -0,0 +1,97 @@ + + + + + + + + + +Fidonet Standard Commitee documents. + + + +
+
Last update 01-Mar-2007
+

Fidonet Technical Standards

+ +

Introduction

+

+This is an overview of used documents for the development of the MBSE BBS +package. Note that there are more documents, but only the relevant and valid +documents are shown present here. The documents are not available in this +distribution anymore, you can get these from the FTSC +website. +

+Michiel Broek. +

+ +


+

FSC Documents

+
    +
  • FSC-0035 Transparant Gateways to and from FidoNet, Michael Shiels +
  • FSC-0039 A type-2 packet extension proposal M.Howard +
  • FSC-0046 A Product Identifier for FidoNet Message Handlers, J.Homrighausen +
  • FSC-0048 A Proposed type-2 packet extension, J.Vroonhof +
  • FSC-0049 A proposal for passing domain information during FTS-0006 sessions, B.Hartman +
  • FSC-0050 A character set identifier for FidoNet message editors, T.Sundblom +
  • FSC-0053 Specifications for the ^aFLAGS field, J.Homrighausen +
  • FSC-0056 EMSI/IEMSI Protocol Definition, J.Homrighausen +
  • FSC-0057 Conference Managers - Specifications For Requests, F.Fabris, J.Homrighausen +
  • FSC-0059 Newsgroup Interchange within FidoNet, J.Decker +
  • FSC-0062 Nodelist Flag indicating Online Times, D.Thomas +
  • FSC-0070 Improving FidoNet/UseNet Gating and Dupe checking, F.Arnoud +
  • FSC-0072 The HYDRA file transfer protocol, J.Homrighausen, A.Lenz +
  • FSC-0087 File forwarding in FidoNet technology networks, R.Williamson +
  • FSC-0088 Compatibility and Link Qualifier Extensions for EMSI Sessions, R.Williamson +
  • FSC-0091 ISDN nodelist flags (rev.002), A.Lenz +
  • FSC-0093 Reduced seen-by lines, F.Ellermann +
+ +

+ +

FSP Documents

+
    +
  • FSP-1011 BinkP - a protocol for transferring Fidonet mail over reliable connections, Dima Maloff +
  • FSP-1013 Character set definition in Fidonet messages +
  • FSP-1018 Binkp/1.0 Protocol specification +
  • FSP-1019 Binkp 1.0 optional protocol extension CRAM +
  • FSP-1026 Translation of a Fidonet Address into an Internet Domain Name +
  • FSP-1030 Unicode character set in FidoNet messages +
  • FSP-1032 Binkp optional protocol extension Dataframe Compression +
  • FSP-1033 The ICM Flag +
+ + +

+

FTA Documents

+
    +
  • FTA-1005 FTSC Product ID +
  • FTSC Product codes list +
+ + +

+

FTS Documents

+
    +
  • FTS-0001 A basic FidoNet(r) technical standard, R.Bush +
  • FTS-0004 Echomail specification, B.Hartman +
  • FTS-0006 YOOHOO and YOOHOO/2U2, V.Perriello +
  • FTS-0007 SEAlink protocol extension, P.Becker +
  • FTS-0008 Bark file-request protocol extension, P.Becker +
  • FTS-0009 Message identification and reply linkage, J.Nutt +
  • FTS-1024 Raw ifcico mail transfer protocol +
  • FTS-4001 Addressing Control Paragraphs, Goran Eriksson +
  • FTS-4008 Time zone information (TZUTC) +
  • FTS-4009 Netmail tracking (Via) +
  • FTS-5000 The distribution nodelist, David Hallford +
  • FTS-5001 Nodelist flags and user flags, David Hallford +
+ +
+ +IndexBack to Index +
+ + + diff --git a/html/images/b_arrow.png b/html/images/b_arrow.png new file mode 100644 index 00000000..91e6de1b Binary files /dev/null and b/html/images/b_arrow.png differ diff --git a/html/images/connec.png b/html/images/connec.png new file mode 100644 index 00000000..e9107d3f Binary files /dev/null and b/html/images/connec.png differ diff --git a/html/images/domains.png b/html/images/domains.png new file mode 100644 index 00000000..31ed8cb3 Binary files /dev/null and b/html/images/domains.png differ diff --git a/html/images/doors.png b/html/images/doors.png new file mode 100644 index 00000000..58d9a8ae Binary files /dev/null and b/html/images/doors.png differ diff --git a/html/images/doors2.png b/html/images/doors2.png new file mode 100644 index 00000000..d6287498 Binary files /dev/null and b/html/images/doors2.png differ diff --git a/html/images/dream1.png b/html/images/dream1.png new file mode 100644 index 00000000..37529832 Binary files /dev/null and b/html/images/dream1.png differ diff --git a/html/images/dream2.png b/html/images/dream2.png new file mode 100644 index 00000000..b5f314e0 Binary files /dev/null and b/html/images/dream2.png differ diff --git a/html/images/dream3.png b/html/images/dream3.png new file mode 100644 index 00000000..408bf81b Binary files /dev/null and b/html/images/dream3.png differ diff --git a/html/images/e_menu.png b/html/images/e_menu.png new file mode 100644 index 00000000..07d92c9b Binary files /dev/null and b/html/images/e_menu.png differ diff --git a/html/images/emareas.png b/html/images/emareas.png new file mode 100644 index 00000000..a41c8a6f Binary files /dev/null and b/html/images/emareas.png differ diff --git a/html/images/emgroup.png b/html/images/emgroup.png new file mode 100644 index 00000000..840335a6 Binary files /dev/null and b/html/images/emgroup.png differ diff --git a/html/images/fdb.png b/html/images/fdb.png new file mode 100644 index 00000000..9ea74809 Binary files /dev/null and b/html/images/fdb.png differ diff --git a/html/images/fegroup.png b/html/images/fegroup.png new file mode 100644 index 00000000..eeb1d07c Binary files /dev/null and b/html/images/fegroup.png differ diff --git a/html/images/fileecho.png b/html/images/fileecho.png new file mode 100644 index 00000000..447f3447 Binary files /dev/null and b/html/images/fileecho.png differ diff --git a/html/images/filefind.png b/html/images/filefind.png new file mode 100644 index 00000000..48d5e50f Binary files /dev/null and b/html/images/filefind.png differ diff --git a/html/images/files.png b/html/images/files.png new file mode 100644 index 00000000..1effd19c Binary files /dev/null and b/html/images/files.png differ diff --git a/html/images/go_to.png b/html/images/go_to.png new file mode 100644 index 00000000..bf9ea1db Binary files /dev/null and b/html/images/go_to.png differ diff --git a/html/images/hand.up.png b/html/images/hand.up.png new file mode 100644 index 00000000..f18cd3b2 Binary files /dev/null and b/html/images/hand.up.png differ diff --git a/html/images/hatch.png b/html/images/hatch.png new file mode 100644 index 00000000..1fe082ab Binary files /dev/null and b/html/images/hatch.png differ diff --git a/html/images/language.png b/html/images/language.png new file mode 100644 index 00000000..0da4f797 Binary files /dev/null and b/html/images/language.png differ diff --git a/html/images/larrow.png b/html/images/larrow.png new file mode 100644 index 00000000..3f4a05ca Binary files /dev/null and b/html/images/larrow.png differ diff --git a/html/images/magic.png b/html/images/magic.png new file mode 100644 index 00000000..49ba8ad8 Binary files /dev/null and b/html/images/magic.png differ diff --git a/html/images/mbmon1-tn.png b/html/images/mbmon1-tn.png new file mode 100644 index 00000000..79e1715c Binary files /dev/null and b/html/images/mbmon1-tn.png differ diff --git a/html/images/mbmon1.png b/html/images/mbmon1.png new file mode 100644 index 00000000..a87b9c2d Binary files /dev/null and b/html/images/mbmon1.png differ diff --git a/html/images/mbmon2-tn.png b/html/images/mbmon2-tn.png new file mode 100644 index 00000000..f2051bf3 Binary files /dev/null and b/html/images/mbmon2-tn.png differ diff --git a/html/images/mbmon2.png b/html/images/mbmon2.png new file mode 100644 index 00000000..b917be44 Binary files /dev/null and b/html/images/mbmon2.png differ diff --git a/html/images/mbse.png b/html/images/mbse.png new file mode 100644 index 00000000..e6c22c44 Binary files /dev/null and b/html/images/mbse.png differ diff --git a/html/images/mbsebbs-s.png b/html/images/mbsebbs-s.png new file mode 100644 index 00000000..43a620fd Binary files /dev/null and b/html/images/mbsebbs-s.png differ diff --git a/html/images/mbsebbs.png b/html/images/mbsebbs.png new file mode 100644 index 00000000..83bc0a3e Binary files /dev/null and b/html/images/mbsebbs.png differ diff --git a/html/images/mbsetup0.png b/html/images/mbsetup0.png new file mode 100644 index 00000000..3a660546 Binary files /dev/null and b/html/images/mbsetup0.png differ diff --git a/html/images/mbsetup1.6.S.png b/html/images/mbsetup1.6.S.png new file mode 100644 index 00000000..fb0fa485 Binary files /dev/null and b/html/images/mbsetup1.6.S.png differ diff --git a/html/images/mbsetup1.6.png b/html/images/mbsetup1.6.png new file mode 100644 index 00000000..bb4c13a0 Binary files /dev/null and b/html/images/mbsetup1.6.png differ diff --git a/html/images/mbsetup2.png b/html/images/mbsetup2.png new file mode 100644 index 00000000..4fa4d6ac Binary files /dev/null and b/html/images/mbsetup2.png differ diff --git a/html/images/modems0.png b/html/images/modems0.png new file mode 100644 index 00000000..fde8b86b Binary files /dev/null and b/html/images/modems0.png differ diff --git a/html/images/newfiles.png b/html/images/newfiles.png new file mode 100644 index 00000000..8a86d5e8 Binary files /dev/null and b/html/images/newfiles.png differ diff --git a/html/images/newgroups.png b/html/images/newgroups.png new file mode 100644 index 00000000..34733d06 Binary files /dev/null and b/html/images/newgroups.png differ diff --git a/html/images/nodelist.png b/html/images/nodelist.png new file mode 100644 index 00000000..db42d042 Binary files /dev/null and b/html/images/nodelist.png differ diff --git a/html/images/nodelist1.png b/html/images/nodelist1.png new file mode 100644 index 00000000..ebc2d05d Binary files /dev/null and b/html/images/nodelist1.png differ diff --git a/html/images/nodelist2.png b/html/images/nodelist2.png new file mode 100644 index 00000000..8435d1a0 Binary files /dev/null and b/html/images/nodelist2.png differ diff --git a/html/images/nodelist3.png b/html/images/nodelist3.png new file mode 100644 index 00000000..86caa6b6 Binary files /dev/null and b/html/images/nodelist3.png differ diff --git a/html/images/nodelist4.png b/html/images/nodelist4.png new file mode 100644 index 00000000..7709cc2b Binary files /dev/null and b/html/images/nodelist4.png differ diff --git a/html/images/nodelist5.png b/html/images/nodelist5.png new file mode 100644 index 00000000..1b4947e8 Binary files /dev/null and b/html/images/nodelist5.png differ diff --git a/html/images/nodes1.png b/html/images/nodes1.png new file mode 100644 index 00000000..ec4803b6 Binary files /dev/null and b/html/images/nodes1.png differ diff --git a/html/images/nodes10.png b/html/images/nodes10.png new file mode 100644 index 00000000..82f1e5c5 Binary files /dev/null and b/html/images/nodes10.png differ diff --git a/html/images/nodes11.png b/html/images/nodes11.png new file mode 100644 index 00000000..5f249ba7 Binary files /dev/null and b/html/images/nodes11.png differ diff --git a/html/images/nodes2.png b/html/images/nodes2.png new file mode 100644 index 00000000..e2fd2f15 Binary files /dev/null and b/html/images/nodes2.png differ diff --git a/html/images/nodes3.png b/html/images/nodes3.png new file mode 100644 index 00000000..dee0b83c Binary files /dev/null and b/html/images/nodes3.png differ diff --git a/html/images/nodes4.png b/html/images/nodes4.png new file mode 100644 index 00000000..3a7b4eb9 Binary files /dev/null and b/html/images/nodes4.png differ diff --git a/html/images/nodes5.png b/html/images/nodes5.png new file mode 100644 index 00000000..8a635513 Binary files /dev/null and b/html/images/nodes5.png differ diff --git a/html/images/nodes6.png b/html/images/nodes6.png new file mode 100644 index 00000000..e64709ed Binary files /dev/null and b/html/images/nodes6.png differ diff --git a/html/images/nodes7.png b/html/images/nodes7.png new file mode 100644 index 00000000..04cc1b2c Binary files /dev/null and b/html/images/nodes7.png differ diff --git a/html/images/nodes8.png b/html/images/nodes8.png new file mode 100644 index 00000000..52fd6978 Binary files /dev/null and b/html/images/nodes8.png differ diff --git a/html/images/nodes9.png b/html/images/nodes9.png new file mode 100644 index 00000000..dacace13 Binary files /dev/null and b/html/images/nodes9.png differ diff --git a/html/images/oneliner.png b/html/images/oneliner.png new file mode 100644 index 00000000..92fc6d75 Binary files /dev/null and b/html/images/oneliner.png differ diff --git a/html/images/protocol.png b/html/images/protocol.png new file mode 100644 index 00000000..c3cf40df Binary files /dev/null and b/html/images/protocol.png differ diff --git a/html/images/rarrow.png b/html/images/rarrow.png new file mode 100644 index 00000000..5aa5b70d Binary files /dev/null and b/html/images/rarrow.png differ diff --git a/html/images/route1.png b/html/images/route1.png new file mode 100644 index 00000000..1ac0eb38 Binary files /dev/null and b/html/images/route1.png differ diff --git a/html/images/route2.png b/html/images/route2.png new file mode 100644 index 00000000..74c49ef1 Binary files /dev/null and b/html/images/route2.png differ diff --git a/html/images/security.png b/html/images/security.png new file mode 100644 index 00000000..3ea7669c Binary files /dev/null and b/html/images/security.png differ diff --git a/html/images/taskmgr.png b/html/images/taskmgr.png new file mode 100644 index 00000000..91db29d2 Binary files /dev/null and b/html/images/taskmgr.png differ diff --git a/html/images/tdream1.png b/html/images/tdream1.png new file mode 100644 index 00000000..5495cf88 Binary files /dev/null and b/html/images/tdream1.png differ diff --git a/html/images/tdream2.png b/html/images/tdream2.png new file mode 100644 index 00000000..619d1633 Binary files /dev/null and b/html/images/tdream2.png differ diff --git a/html/images/tdream3.png b/html/images/tdream3.png new file mode 100644 index 00000000..8af2de3c Binary files /dev/null and b/html/images/tdream3.png differ diff --git a/html/images/tty.png b/html/images/tty.png new file mode 100644 index 00000000..04c589f5 Binary files /dev/null and b/html/images/tty.png differ diff --git a/html/images/tty1.png b/html/images/tty1.png new file mode 100644 index 00000000..6b0dc3e0 Binary files /dev/null and b/html/images/tty1.png differ diff --git a/html/images/tty2.png b/html/images/tty2.png new file mode 100644 index 00000000..f2f874d1 Binary files /dev/null and b/html/images/tty2.png differ diff --git a/html/images/uarrow.png b/html/images/uarrow.png new file mode 100644 index 00000000..98d9077a Binary files /dev/null and b/html/images/uarrow.png differ diff --git a/html/images/users.png b/html/images/users.png new file mode 100644 index 00000000..50bfd0fb Binary files /dev/null and b/html/images/users.png differ diff --git a/html/images/users2.png b/html/images/users2.png new file mode 100644 index 00000000..130c85d2 Binary files /dev/null and b/html/images/users2.png differ diff --git a/html/index.htm.in b/html/index.htm.in new file mode 100644 index 00000000..0edc83ad --- /dev/null +++ b/html/index.htm.in @@ -0,0 +1,140 @@ + + + + + + + + + + + +Running a BBS under Linux. + + + +
+
MBSE
+

MBSE BBS System Guide @VERSION@

+
Last update 01-Mar-2007
+ + +

Introduction

+ +Screenshot + + +

 

+ +

Release Notes

+ + +

 

+ +

MBSE BBS Reference Manual

+ +
    +
  1. Running a BBS under Linux
  2. +
  3. Which distribution to use
  4. +
  5. Basic installation MBSE BBS
  6. +
  7. Upgrade MBSE BBS
  8. +
  9. Configuring the bbs with mbsetup +
      +
    1. Edit Global configuration +
    2. Edit Fido networks +
    3. Edit Archiver programs +
    4. Edit Virus scanners +
    5. Edit Modem types +
    6. Edit TTY lines info +
    7. Edit Fidonet nodes +
    8. Edit BBS setup +
        +
      1. Edit Security limits +
      2. Edit Language setup +
      3. Edit BBS menus +
      4. Edit File areas +
      5. Edit Transfer protocols +
      6. Edit Oneliners +
      +
    9. Edit Mail setup +
        +
      1. Echo mail groups +
      2. Echo mail areas +
      +
    10. Edit File echo's setup +
        +
      1. Edit Fileecho groups +
      2. Edit Fileecho areas +
      3. Edit Hatch manager +
      4. Edit Magic files +
      +
    11. Edit Newfiles groups +
    12. Edit Newfiles reports +
    13. Edit Filefind setup +
    14. Edit Files database +
    15. Edit BBS users +
    16. Edit Services +
    17. Edit Domains +
    18. Edit task manager +
    19. Edit Routing Table +
    20. Edit Internet BBS Chat +
    21. Show software information +
    22. Create site documents +
  10. +
  11. Starting and Stopping the BBS
  12. +
  13. Setup mgetty for the BBS
  14. +
  15. Programs and utilities +
      +
    1. mbaff, Announce newfiles and filefind
    2. +
    3. mball, Allfiles and newfiles list creator
    4. +
    5. mbcico, The Fidonet mailer ala ifcico
    6. +
    7. mbdiff, Nodelist difference processor
    8. +
    9. mbfido, Fidonet mail and files procesor
    10. +
    11. mbfile, Files database maintenance program
    12. +
    13. mbindex, Nodelist index compiler
    14. +
    15. mblang, Language datafile compiler
    16. +
    17. mblogin, Unix login replacement
    18. +
    19. mbmon, The monitor program
    20. +
    21. mbmsg, The messagebase utility program
    22. +
    23. mbnntp, The news server
    24. +
    25. mbout, The mailer outbound program
    26. +
    27. mbpasswd, The passwd wrapper
    28. +
    29. mbsebbs, The bbs program
    30. +
    31. mbseq, Sequence number creator
    32. +
    33. mbsetup, The setup program
    34. +
    35. mbstat, The bbs status change program
    36. +
    37. mbtask, The taskmanager for the bbs system
    38. +
    39. mbtoberep, The toberep.data lister
    40. +
    41. mbuser, The userbase maintenance program
    42. +
    43. mbuseradd, The useradd wrapper
    44. +
  16. +
  17. Netmail routing behaviour
  18. +
  19. Fido to Internet Gateway
  20. +
  21. Email Gateway - Postfix setup.
  22. +
  23. Nodediff and Nodelist processing
  24. +
  25. Using UPS semafore's
  26. +
  27. Running DOS doors on MBSE BBS
  28. +
  29. Error return codes
  30. +
+

 

+ +

Other Notes

+ + + +
+BackBack  +TopTop +
+ + + diff --git a/html/intergate.html b/html/intergate.html new file mode 100644 index 00000000..02b30efb --- /dev/null +++ b/html/intergate.html @@ -0,0 +1,106 @@ + + + + + + + + + + + +MBSE BBS - Internet gateway. + + + +
+
Last update 10-May-2002
+

MBSE BBS - Internet Gateway.

+ +

Introduction.

+

+Since version 0.33.14 the email gateway is build into MBSE BBS and since +version 0.33.15 the newsgateway is build into MBSE BBS. Since version 0.33.16 the +newsgateway to UUCP nodes is added. To route +email trafic to and from the internet you need a internet MTA. I stopped using +sendmail for this because it gave too much trouble setting it +up together with MBSE BBS. +Today I use Postfix, +a well documented, secure and easy to setup MTA. For the actual gate from +Postfix to the BBS you I use mbmail which you need to add to the +Postfix configuration.

+

+There may be two reasons to create a gateway, one is to gate internet news and +email to the Fidonet bbs users, another reason may be that you want to make +echomail as news available on your system so that users can connect to your +bbs with their favourite browser an get the mail and news using pop3 and +nntp protocols. The setup is the same for both reasons so I will make one +description for the whole setup. +

 

+ +

Setup a newsgate node with inn.

+

+If you only want to gate internet news to your bbs users and not want to +make echomail available as news, and you have a permament internet connection +then you don't need your own news server. This will also work on dialup links, +once the internet connection is up, make sure that mbfido news -quiet is +started as user mbse. +To do this configure MBSE BBS to use the newsserver of your ISP in screen 1.15 +with mbsetup. +If you don't want to use the newsserver of your ISP or want to make echomail +available as news for your local users you must install your own newsserver. +You could use inn news for a newsserver. +To connect a small feed with your ISP you could use suck. +

+In each echomail area you want to gate you need to fill in the newsgroup +name of that area and echomail received in that area will automatic be +posted to that newsgroup. The command mbfido news will check all +configured newsgroups for new newsarticles. If you set it up for the first +time you need to run mbfido news -learn to fill the dupes +database for news with all the already existing news articles. If you skip +that, you may get a lot of old articles that will be gated. Just run that +command once after you have set this up. Later when you receive fresh articles +the command mbfido news will only gate new arrived articles. +In each mail area you can set the number of articles to get in one run. If you +set this too high, mbfido will scan all headers on the newsserver for new +articles. This can cost a lot of time. The best thing to do is to set this value +about four times higher then the average number of messages per day in that +group. If you set it too low, warning messages will appear in the logfile. +

 

+ +

Setup a newsgate with rnews.

+

+This is the setup if you don't want an NNTP newsserver like inn, but a simple +cnews setup for UUCP links only. In mbsetup menu 1.15 you need +to set this up. You need to fill in the path to the rnews program so that +mbfido can post articles to cnews. MORE INFO NEEDED. +

+In each echomail area you want to gate you need to fill in the newsgroup +name of that area and echomail received in that area will automatic be +posted to that newsgroup. +

 

+ +

Setup a newsgate via UUCP.

+

+With this setup you don't run a local newsserver, only your bbs users and +Fidonet links can then use news. You need to install uucp +on your system. With mbsetup menu 1.15 you need to set this +up. Suppose your ISP's nodename is xs4all the you probably need to set the +UUCP path to /var/spool/uucp/xs4all and the UUCP node to +xs4all. Your own nodename will be your system's hostname without +the domain part. +

+In each echomail area you want to gate you need to fill in the newsgroup +name of that area and echomail received in that area will automatic be +posted to that newsgroup. +

 

+ +

Setup a email gate.

+

+See Postfix (email) configuration +

+ +BackGo Back +

+ + diff --git a/html/intro.html b/html/intro.html new file mode 100644 index 00000000..873f678e --- /dev/null +++ b/html/intro.html @@ -0,0 +1,94 @@ + + + + + + + + + + + +Running a BBS under Unix. + + + +
+
Last update 01-Mar-2007
+

Introduction to MBSE BBS.

+ +

Distribution.

+

+These are the only official distribution sites for the mbse bbs package. They are: +

    +
  1. http://www.mbse.eu +
  2. fidonet node 2:280/2802 binkp fido.mbse.eu +
+If you find mbse bbs on another site it may be out of date. I have no control over these sites. +New versions of mbse bbs are announced in the fidonet area LINUX_BBS and MBSE +support echo. On the official fidonet +nodes you can request the latest version with the magic MBSEBBS. You will then get a zip file, +in this zip file is the original tar.gz file. This is to let systems who only support 8.3 +filenames to pickup the distribution package. +

 

+ +

History.

+

+At the end of 1997 I was looking for several BBS systems that could run on +GNU/Linux and it must be capable to run Fidonet mail. After reviewing almost +all packages that were available at that time I found that there were no +packages that suited my needs. Some had the plain user interfaces that +my bbs users were used to but no Fidonet capabilities, others looked +awfull or were difficult to use by normal bbs users without Unix experience. +I also didn't want to run shareware anymore, one day you pay for some program, +and the next day support is over because the writer of that program decided +to stop development or simply dissapears from the Fidonet stage. With all +Y2K problems ahead the solution should be Open Software so that you have +the sources in case something goes wrong. +One package was very interesting and had the look and feel of RemoteAcces, +that package was RapidBBS. There was only one problem, it had no Fidonet +capabilities. I rewrote the data structures and created a deamon that should +control all bbs acivities. In march 1998 I started writing the mbfido program +that should handle all Fidonet mail and .tic files. In june 1998 the final +message base format became JAM using the LoraBBS sources as a guide to create +the JAM libraries. The original JAMapi was not stable enough to do all the work +that needed to be done. +

+In Juli 1998 the first version of MBSE BBS was installed on the bbs I have, +on the second line. The first line was running McMail, GEcho and RA on a +Novell client while on the GNU/Linux box the mars_nwe emulator from Martin Stower +was running. In november 1998 mbcico was created from ifcico from Eugene M. +Crosser. In Januari 1999 it did also compile and run on a Sun Sparcstation 2 +system. +

+In April 1999 the motherboard of the GNU/Linux server died, I replaced it with +the MOBO of one of the client machines. From that day on, MBSE BBS became the +only bbs running on my system, because I was short on serial port boards at +that time. McMail and RA became history and MBSE BBS was on its own. From that +day on, updates were almost daily, all users and up and downlinks showed that +there were plenty of bugs to solve. One month later most problems were solved. +

+In juli 1999 Jan van de Werken started beta testing MBSE BBS on his system. +In September 1999 MBSE BBS was public released for the first time. +

 

+ +

Is it Y2K ready?

+

+There have been no problems since 1 januari 2000 with MBSE BBS. I do run +pktdate by Tobias Ernst in the tosser, this solves problems with incoming +mail. Due to the internal date format, this program should run until 2038, +just as long as Unix/Linux and the internet will function without changing +the date format. +

 

+ +

Future plans.

+

+Plans are to completly integrate www and chat into MBSE BBS. It +should work for browsers about the same as with ANSI character terminals. +

 

+ + +BackGo Back +

+ + diff --git a/html/invoking.html b/html/invoking.html new file mode 100644 index 00000000..5daf5f4b --- /dev/null +++ b/html/invoking.html @@ -0,0 +1,72 @@ + + + + + + + + + + + +Starting and stopping the BBS. + + + +
+
Last update 06-Jun-2001
+

Starting and Stopping the BBS.

+ +Now it is time to check the starting and stopping of the BBS. As you have +installed everything, setup the BBS etc, you must check if the shutdown and +reboot work properly. As root type shutdown -r now and +watch the console. You should see messages that the BBS is closing while +the systems shuts down. This should be one of the first things to happen. +Because Slackware up to version 7.0.0 is tricky to automatic install the shutdown scripts, +you won't see this happen on older Slackware versions. If you want, you can edit +/etc/rc.d/rc.6 and /etc/rc.d/rc.K and insert the line /opt/mbse/etc/rc.shutdown +at the proper places.

+ +When your system comes up again, one of the last messages before the login +prompt appears or just before X-windows starts, you should see messages that +the BBS is started.

+ +Login as user mbse and check the logfiles if everything looks +good. If something is wrong, reread the previous documentation and check if +you did everything right.

+ +Next logon to your BBS locally using the account "bbs". +You can do that by typing su - bbs or if you already have installed +mblogin as login replacement for telnet, then type telnet +localhost. +You will then create the first user of your BBS, this will be you, the sysop of course. +After you logout the BBS start as user +mbse the program mbsetup and edit your user record +to set your level to that of the sysop. One more thing, the unix account you +must create when you logon as new BBS user may not be mbse +as this is the normal Admin account the BBS and its utilities use.

+ +Now login with your unix account and see if everything still works. +If you have setup mgetty you may want to test if +users really can login with a modem. Also check a mailer session, can you +dialout, ie. poll other nodes and can they call you. There is a lot that can +go wrong with unix permissions if you are not precise in wat you are doing.

+ +If everything is working it is time to create poll events, and adjust other +scripts to your local needs to get your BBS full up and running.

+ +To do this you must install a crontab for user mbse. +As user mbse go to the directory ~/mbsebbs-0.33.xx. +In that directory type sh ./CRON.sh and a default crontab will be installed.

+ +To add poll events, edit the crontab with the command crontab -e + At the bottom of that file there is an example of how to do that. +Now that the crontab is installed, all maintenance will now work, automatic +dialout, scanning and tossing mail etc. In other words, the bbs is up and +running. +

+ +BackGo Back +

+ + diff --git a/html/known_bugs.html b/html/known_bugs.html new file mode 100644 index 00000000..3fe62112 --- /dev/null +++ b/html/known_bugs.html @@ -0,0 +1,45 @@ + + + + + + + + + + + +Running a BBS under Unix. + + + +
+
Last update 01-Mar-2007
+

MBSE BBS - Known bugs.

+ +There are always more bugs, but these are known.... + +
    +
  • Reading of function keys in mbsebbs doesn't work always good, especially on +slow links and over PPP. This is not a MBSE BBS problem. + +
  • Problems with D'Bridge [1a] mailers. + +
  • If you have regular sessions with a node wich only supports FTS-0001 +sessions and you use a session password you must also set a mail password +and these passwords must be the same. This is a side effect of the way FTS-0001 +handshake works, by sending a small mail packet wich contains the password. + +
  • Some Linux distributions have their glibc libraries compiled wrong, that +will cause the mbtask program to do nothing usefull. This problem seems +to have gone away. + +
  • You cannot share the JAM message bases between little-endian and big-endian +machines using networked filesystems because the storage format doesn't specify +the internal byte order for different CPU's. This is an error in the JAM spec. +
+ +BackGo Back +
+ + diff --git a/html/license/copying.html b/html/license/copying.html new file mode 100644 index 00000000..e90f332b --- /dev/null +++ b/html/license/copying.html @@ -0,0 +1,358 @@ + + + + +GNU General Public License. + + + + + + +
+		    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.
+
+		    GNU GENERAL PUBLIC LICENSE
+   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 a brief 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.
+
+ +BackGo Back + + + + diff --git a/html/license/hydracom.html b/html/license/hydracom.html new file mode 100644 index 00000000..3e728846 --- /dev/null +++ b/html/license/hydracom.html @@ -0,0 +1,118 @@ + + + + + + + +Hydracom License. + + + +
+                              HydraCom Version 1.00
+
+                         A sample implementation of the
+                   HYDRA Bi-Directional File Transfer Protocol
+
+                             HydraCom was written by
+                   Arjen G. Lentz, LENTZ SOFTWARE-DEVELOPMENT
+                  COPYRIGHT (C) 1991-1993; ALL RIGHTS RESERVED
+
+                       The HYDRA protocol was designed by
+                 Arjen G. Lentz, LENTZ SOFTWARE-DEVELOPMENT and
+                             Joaquim H. Homrighausen
+                  COPYRIGHT (C) 1991-1993; ALL RIGHTS RESERVED
+
+
+  DISCLAIMER
+
+  This program is provided "as is" and comes with no warranties of any
+  kind, either expressed or implied. In no event shall the authors be
+  liable to you or anyone else for any damages, including any lost
+  profits, lost savings or other incidental or consequential damages
+  arising out of the use or inability to use this software.
+
+
+  HYDRACOM / SOURCE LICENSE
+
+  HydraCom, its associated utilities (HydraCfg) and the HydraCom
+  sourcecode may be freely distributed, copied and used, no fee charged.
+  All files, executables and sourcecode remain the copyrighted property
+  of Arjen G. Lentz and LENTZ SOFTWARE-DEVELOPMENT.
+  The distribution archives should remain intact with no files removed
+  or modified. For special purposes, it is allowed to repack the
+  archives using a different compression system.
+
+  HydraCom may be bundled up with for instance terminal or BBS packages,
+  even commercial ones, provided the buyer/user is clearly informed
+  about the fact that Hydra and HydraCom are free, not owned by the
+  distributor/retailer in question, and is not included in any possible
+  charge regarding the rest of the package. This documentation must also
+  be present so the user can inform himself about Hydra and HydraCom.
+  The same rules apply to inclusion in shareware and CD-ROM libraries.
+  In all cases, the author of HydraCom must be given credit in any
+  informational screens and literature that contain such information.
+
+  The Hydra/HydraCom sourcecode may also be freely used and integrated
+  into other software or library, provided this is clearly stated in any
+  informational screens and literature pertaining to this program, and
+  credit is given to the original author. If the sourcecode of that
+  program or library is released or otherwise published, the notices
+  present at the top of every Hydra/HydraCom source file must be
+  retained in their original unmodified form.
+
+  In addition to the above license, everyone using any part of the
+  sourcecode, programs or files is fully bound by the general license of
+  the Hydra protocol as present in the Hydra protocol description
+  document. For easy reference, the paragraph in question is reprinted
+  below.
+
+  Any use of, or operation on (including copying/distributing) any of
+  the above mentioned files implies full and unconditional acceptance of
+  this license and disclaimer.
+
+
+  HYDRA PROTOCOL LICENSE 
+
+  You are granted a license to implement the HYDRA file transfer
+  protocol, HYDRA hereafter, in your own programs and/or use the sample
+  source code and adapt these to your particular situation and needs;
+  subject to the following conditions:
+
+   -  You must refer to it as the HYDRA file transfer protocol, and you
+      must give credit to the authors of HYDRA in any information
+      screens or literature pertaining to your programs that contains
+      other such information (credits, your own copyrights, etc.).
+
+   -  HYDRA will always remain backwards compatible with previous
+      revisions. HYDRA allows for expansion of its features without
+      interfering with previous revisions. It is, however, important
+      that different people do not expand the protocol in different
+      directions. We therefore ask you to contact us if you have any
+      needs/ideas regarding HYDRA, so development can be synchronized
+      and beneficial to all.
+
+   -  If your implementation cannot converse with past or future
+      revisions as supplied by us, then you must refer to it as "HYDRA
+      derived", or as "a variation of HYDRA", or words to that effect.
+
+
+  Hydra protocol design and HydraCom driver:         Hydra protocol design:
+  Arjen G. Lentz                                     Joaquim H. Homrighausen
+  LENTZ SOFTWARE-DEVELOPMENT                         389, route d'Arlon
+  Langegracht 7B                                     L-8011 Strassen
+  3811 BT  Amersfoort                                Luxembourg
+  The Netherlands
+  FidoNet 2:283/512, AINEX-BBS +31-33-633916         FidoNet 2:270/17
+  arjen_lentz@f512.n283.z2.fidonet.org               joho@ae.lu
+
+  Please feel free to contact us at any time to share your comments about our
+  software and/or licensing policies.
+
+ +BackGo Back + + + + diff --git a/html/license/index.htm b/html/license/index.htm new file mode 100644 index 00000000..0d108964 --- /dev/null +++ b/html/license/index.htm @@ -0,0 +1,40 @@ + + + + + + + + + + + +Licenses. + + + +
+
Last update 29-Jan-2001
+

Licenses.

+ +

Introduction

+

+This is an overview of the licenses that are valid for the use of MBSE BBS or +parts of it. +
+Michiel Broek. +

+ +

License Documents.

+ + + +IndexBack to Index +
+ + + diff --git a/html/license/jam.html b/html/license/jam.html new file mode 100644 index 00000000..7db94c67 --- /dev/null +++ b/html/license/jam.html @@ -0,0 +1,76 @@ + + + + + + + +JAM License. + + + +
+    ---------------------------------------------------------------------
+                                  JAM(mbp)
+                The Joaquim-Andrew-Mats Message Base Proposal
+    ---------------------------------------------------------------------
+            Copyright 1993 Joaquim Homrighausen, Andrew Milner,
+                           Mats Birch, Mats Wallin.
+                             ALL RIGHTS RESERVED.
+    ---------------------------------------------------------------------
+
+
+    =====================================================================
+    LEGAL NOTICE
+    ---------------------------------------------------------------------
+
+    The JAM(mbp) documentation and JAM API and information attached
+    hereto, hereafter referred to as JAM, is protected by applicable
+    copyright laws and international treaty provisions. JAM is provided
+    "as is", without warranty of any kind or fitness for a particular
+    purpose, either expressed or implied, all of are hereby explicitly
+    disclaimed. The authors only guarantees that JAM will occupy disk
+    space.
+
+    The entire risk as to the quality and performance of JAM is with you.
+    Should JAM prove defective or incorrect, you assume the entire cost
+    of all necessary servicing, repair, and/or correction. In no event
+    shall the authors be liable to the you or anyone else for any damages
+    or costs, including, but not limited to, any lost profits, lost
+    savings, lost income, lost information, loss of the right to use JAM,
+    or other incidental or consequential damages arising out of the use
+    or inability to use JAM.
+
+    All information provided in JAM is subject to change without further
+    notice.
+
+    JAM may be published and distributed to other people as long as no
+    part of it is modified by any means, this includes translation to
+    any other language (technical or social), and as long as no charges
+    are applied (including but not limited to trading). This information
+    may not be used to reverse engineer any application developed by the
+    authors.
+
+    All applications that support JAM must include one of the following
+    notices in their documentation and somewhere in the product's credit
+    section:
+
+    "JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner,
+                               Mats Birch, Mats Wallin.
+                               ALL RIGHTS RESERVED."
+
+    or
+
+    "This product uses the JAM(mbp) API -
+     Copyright 1993 Joaquim Homrighausen, Andrew Milner, Mats Birch,
+                    Mats Wallin. ALL RIGHTS RESERVED."
+
+    All trademarks are trademarks or registered trademarks of their
+    respective holders.
+
+ +BackGo Back + + + + diff --git a/html/manual.css b/html/manual.css new file mode 100644 index 00000000..b4ba975a --- /dev/null +++ b/html/manual.css @@ -0,0 +1,30 @@ +/* + * $Id: manual.css,v 1.5 2003/11/08 16:48:03 mbroek Exp $ + * + * stylesheet for the MBSE BBS manual. + */ + + +BODY { background-color: white; font: 12pt sans-serif,helvetica,arial; } + +/* + * H1 is the page header, H3 the paragraph header, H5 is topright update date. + */ +H1 { color: red; font: 16pt sans-serif,helvetica,arial; font-weight: bold } +H2 { color: red; font: 14pt sans-serif,helvetica,arial; font-weight: bold } +H3 { position: relative; left: 60px; color: black; font: 14pt sans-serif,helvetica,arial; font-weight: bold } +H5 { color: black; font: 10pt sans-serif,helvetica,arial; } + +A:link { color: blue } +A:visited { color: blue } +A:active { color: red } + +TABLE { color: black; } +TH { font-family: Arial, Helvetica; font-size: 12pt; font-weight: bold; } +TD { font-family: Arial, Helvetica; font-size: 12pt; } + +PRE { color: green; font-family: fixed; } +CODE { color: green; font-family: fixed; } +HR { border-top: solid medium navy } + + diff --git a/html/menus/control.html b/html/menus/control.html new file mode 100644 index 00000000..206d16d5 --- /dev/null +++ b/html/menus/control.html @@ -0,0 +1,134 @@ + + + + + + + + + + + +MBSE BBS Menus - Control Codes in ANSI and ASCII files. + + + +
+
Last update 25-Feb-2007
+

MBSE BBS Control Codes in ANSI and ASCII files

+
+ + +

Single Control characters

+
+ Code      Description
+ ----      ---------------------------------------
+  A        Wait for a key
+  B        Print text above sec. level
+  F        Control-code F
+  K        Control-code K
+  P        Wait one second
+  U        Control-code U
+
+
+
+The control-B syntax is: ^B<seclevel>^B<The text to show>^B
+For example: ^B32000^BThis is the text^B
+

+ +

Control-F followed by:

+
+ Code      Description
+ ----      ---------------------------------------
+  !        Display transfer protocol
+  A        Number of uploads
+  B        Number of downloads
+  C        Downloads in Kilobytes
+  D        Uploads in Kilobytes
+  E        Download plus upload Kilobytes
+  F        Download Kilobyte limit
+  H        Current file area number
+  I        Current file area description
+  J        Download files limit
+  K        Description of user limit
+
+
+
+

+ +

Control-K followed by:

+
+ Code      Description
+ ----      ---------------------------------------
+  A        Print date in format DD-MM-YYYY
+  B        Print time in HH:MM:SS
+  C        Print date in DD-Mmm
+  D        Print date in DD-Mmm-YYYY
+  E        Print locked port baudrate
+  F        Print the name of the Last caller
+  G        Total users in userlist
+  H        Number of system calls
+  I        Current message area number
+  J        Current message area description
+  K        Print random oneliner
+  L        Print number of messages in current area.
+  M        Print users LastRead pointer of current message area.
+  N        Print users current e-mail mailbox name.
+  O        Print number of messages in current e-mail box.
+  P        Print users LastRead pointer of current e-mail box.
+  Q        Print the date and time of the last caller.
+
+
+
+

+ +

Control-U followed by:

+
+ Code      Description
+ ----      ---------------------------------------
+  A        User's full name
+  B        User's location
+  C        User's voice phone
+  D        User's data phone
+  E        User's last login date
+  F        User's first login date
+  G        User's last login time
+  H        User's security level
+  I        User's total calls
+  J        User's time used today
+  K        User's connect time this session
+  L        User's time left today
+  M        User's screen length
+  N        User's first name
+  O        User's last name
+  P        User's graphics mode allways (On).
+  Q        User's news bulletins (On/Off)
+  R        User's hot-keys (On/Off)
+  S        User's daily time limit
+  T        User's date of birth
+  U        User's messages posted
+  X        User's language
+  Y        User's handle
+  Z        User's do not disturb flag (On/Off)
+  1        User's check for new mail (On/Off)
+  2        User's check for new files (On/Off)
+  3        User's fullscreen editor (On/Off)
+  4        User's FS editor Emacs shortcuts (On/Off)
+  5        User's first address line.
+  6        User's Second address line.
+  7        User's Third address line.
+  8        User's OLR Extended Onfo (On/Off).
+  9        User's charactewr set.
+  0        User's current archiver.
+
+
+ +
+Index +Main Index  +Back +Menus Index +
+ + + diff --git a/html/menus/index.htm b/html/menus/index.htm new file mode 100644 index 00000000..7a11ad32 --- /dev/null +++ b/html/menus/index.htm @@ -0,0 +1,181 @@ + + + + + + + + + + + +MBSE BBS Menu System. + + + +
+
Last update 11-Oct-2003
+

MBSE BBS Menu System

+ +

Menus sections: +Global menus  +File areas  +Message areas  +User settings  +Onliners  +BBS lists  +ANSI Control Codes +

+

+


+ +

Introduction.

+

+One of the most powerfull features of the BBS is it's menu system. You +have complete control over each individual menu item which can be restricted +according to criteria such as security levels. +

 

+ +

ANSI Screens.

+

+For the menus to work properly you can draw ANSI screens, this +is what the users will see. For GNU/Linux there is "Duh DRAW" written by Ben +Fowler, see sunsite.unc.edu /pub/Lunux/docs. +If you can't find it or have no internet access, you can also use +THEDRAW. This utility can be found on many BBS'es around the world. Unfortunatly +it is a DOS program so you will need dosemu on your GNU/Linux box or a seperate +DOS computer. You can define main screens and include screens for each +menu, the include screen may for example show the keys that you have available +in every menu. See the list of control codes. +

 

+ +

Display lines.

+

+It is also possible to display menu lines with the buildin display option. +The used colors are selectable, a normal color and a bright color. +The normal color is the default, you can toggle bright on and of using +the ^ in the display line. If you end a menu display line with a ; then +no newline is send after that line. If you want to output teh ^ or ; characters +you need to escape them with a backslash like this: \; or \^. The order of menu +entries is important. +

 

+ +

Automatic commands.

+

+A menu function is usually executed when a user presses the hot-key +assigned to that particular menu item. But menu functions can also be executed +automatically. Each menu item contains an AutoExec field. By default this +field is set to No, but by toggling it to Yes, the menu item can be made +to execute when it is played back (displayed) by the BBS.

+

+As you read through the menu function types outlined in this chapter, +you may come to realize that this is a very powerfull feature. For example, +when used with the menu function that displays a text file, you can design +very elaborate, graphical text file menus that you wouldn't normally be +able to display in a line-by-line menu.

+

+Automatic menu execution can be used in many other instances as well. +Just to give you some ideas, it might be used to display a text file to +users who have a security level equal to or greater than a certain level. +Yet another use is to execute multiple function menus which are used to +execute several functions when a single command is entered. +

 

+ +

Multiple languages.

+

+For each language you can define a set of menus. Only for the default +language all menus must exist. It makes sense to make the filenames of +your menus for each language the same and not to translate them. If a menu +is missing for a non default language, the menu from the default language +path is used instead. +

 

+ +

Editing a menu.

+

+The order of the menu lines in the setup is not important except for +the autoexec menus, they must be placed in the right order from start, +ie. begin with the menu specific screen display, then the global include +display and finally show the prompt. +

+ +Menu editer +

    +
  1. Selection key. This is the key a user must press to activate +this menu. This field is ignored when AutoExec is set to Yes.
  2. + +
  3. Type nr. this is the menu type to execute. For a description +of all available types see the links at the top of this page.
  4. + +
  5. Optional data. Some menus need optional data, for example the +function goto another menu needs the name of that menu file here.
  6. + +
  7. Display. What is to be displayed to the user. You can use this instead +of ANSI screens. +
  8. + +
  9. Security. This is the minimum security level to execute this +selection. The security is a level number combined with 32 bitmapped flags. +NOTE: level 0 and no flags means +everyone can select this menu. Good for logout options and all other options +everyone must be able to execute.
  10. + +
  11. Min. age. The minumum age the user must be to execute this selection. +You may want to restrict access to certain areas to users older than 18 +years. If you leave this to 0, every one can execute this menu.
  12. + +
  13. Lo-colors. The normal display color for the display line. +
  14. + +
  15. Hi-colors. The bright display color for the display line.
  16. + +
  17. AutoExec. If this is an automatic executed selection.
  18. + +
  19. Door Name The name of the door that will be displayed to other users. +This name is also used to count the same doors running if the door only allows a +single user. It is important that you use the same name in every language menu +file for the same door. This item is only visible with menu type 7.
  20. + +
  21. Y2K style Writes the dates in the door.sys file in the new style, +with 4 digit year numbers, else the old 2 digit style is used. This item +is only visible with menu type 7.
  22. + +
  23. No door.sys Suppress writing of a door.sys file in the users +home directory. This item is only visible with menu type 7.
  24. + +
  25. Use Comport Writes COM1: with 19200 as baudrate to the door.sys file, +this is for dosemu with the vmodem patch. This item is only visible with menu +type 7.
  26. + +
  27. Run nosuid If set to Yes the door will run in non-suid mode. +Most doors need this. This item is only visible +with menu type 7.
  28. + +
  29. No Prompt If set to Yes then when the door is finished there will be +no prompt to press Enter, instead the bbs menu will show up immediatly. This +item is only visible with menu type 7.
  30. + +
  31. Single User Set to yes of the door only allows one user at the same +time. Make sure you have set a unique name that must be the same for the door in +every language file so that the bbs is able to count the instances of the door +running. This item is only visible with menu type 7.
  32. + +
  33. Hidden door Set to yes to hide the door from being visible for other +users. If someone is using that door the whoson list displays "External Door" +instead of the door name. This may be good to hide some special sysop only +doors. This item is only visible with menu type 7.
  34. + +
+

 

+ +

Final warning.

+

+If a submenu is missing, the BBS falls back to the main menu. This menu +must be called "main" (or else set another name in the global +setup) or your BBS won't start and complain. Submenus may be nested 50 +levels deep. +

+ +BackBack +

+ + diff --git a/html/menus/menu0.html b/html/menus/menu0.html new file mode 100644 index 00000000..49893cf0 --- /dev/null +++ b/html/menus/menu0.html @@ -0,0 +1,181 @@ + + + + + + + + + + + +MBSE BBS Menus - Global Menus. + + + +
+
Last update 01-Apr-2003
+

MBSE BBS Global Menus

+
+ +
    + +
  1. Goto another menu: This will start the execution + of another menu. The current menu level is not stored on the stack.
    + Optional data: The name of the new menu.
    +

    + +

  2. Gosub another menu: This will start the execution + of another menu. The current menu level is stored on the stack. Gosub's may + be nested 50 levels deep.
    + Optional data: The name of the new menu.
    +

    + +

  3. Return from Gosub: This will go back one + gosub level. If you are already at the top level nothing happens.
    + Optional data: None.
    +

    + +

  4. Return to top menu: Return to the top (main) + menu. The name of this menu is set in the global setup. + Default is main.mnu
    + Optional data: None.
    +

    + +

  5. Display .a?? file with controlcodes: This will + display an ANSI file to the user. If the user has Graphics No set + then the ASCII version is shown. Search is done first in the users language + path and if that fails the default language path is used. + Control codes in the + file are substituted with the current values the represent.
    + Optional data: The name of the file to display. Do not + give the filename extension!
    +

    + +

  6. Show menu prompt: Display the menu prompt.
    + Optional data: The prompt to display. This string may + contain some control characters that are replaced with information. The + prompt is displayed in White on Black and is hardcoded at the moment. +
      +
    • ~ This will insert the number of minutes the user + has left. +
    • @ This will insert the name of the current file area. +
    • ^ This will insert the name of the current message area. +
    • # This will insert the current local time. +
    +

    + +

  7. Run external program: This will execute + external programs.
    + Optional data: The full path and filename of the external + program to run. There are a few switches you can give on the commandline: +
      +
    • /N will be replaced by the current nodenumber. The nodenumber is + faked by using the record number of the tty lines setup. +
    • /A will prompt for a filename to enter. The filename the user + enters is then replaced on the commandline. This is a dangerous option! +
    • /T=your prompt is an alternate prompt for entering a filename + if used together with the /A option. +
    +
    +

    + +

  8. Show product information: This will show + copyright information about MBSE BBS.
    + Optional data: None.
    +

    + +

  9. Display todays callers: This will display a + list of todays callers to the BBS.
    + Optional data: "/H" Show handles instead of real names, "/U" + show Unix names instead of real names.
    +

    + +

  10. Display userlist: Display all users in the + users database except those that are hidden.
    + Optional data: "/H" Show handles instead of real names, "/U" + show Unix names instead of real names.
    +

    + +

  11. Time statistics: Display the users time + statistics.
    + Optional data: None.
    +

    + +

  12. Page Sysop: Page sysop for a chat.
    + Optional data: A message to the user
    + The message to the user could be something like "Calling sysop, please + wait ..." or "I will see if Michiel wants to chat with you, please wait!" + As sysop you will know best what to put in that line. +

    + +

  13. Terminate call: Terminale this call and + hangup.
    + Optional data: None. +

    + +

  14. Make a log entry: This will write a line in + the logfile.
    + Optional data: The information you want in the logfile.
    +

    + +

  15. Print text to screen: Write text to the users + screen.
    + Optional data: The text that must appear on the users + screen. The @ character is replaced with a newline.
    +

    + +

  16. Who is online: Displays the who is online + list and what they are doing. Users that are hidden are not displayed.
    + Optional data: "/H" Show handles instead of real names, "/U" + show Unix names instead of real names.
    +

    + +

  17. Comment to sysop: Enter the texteditor and + let the user write a message to the sysop. The area is predefined in the + global setup.
    + Optional data: None.
    +

    + +

  18. Send online message: Send an online message + to a user on another line.
    + Optional data: "/H" Use handles instead of real names, "/U" + use Unix names instead of real names.
    +

    + +

  19. Display textfile with more: This will display + a textfile to the user. After each full screen the user is prompted with + More Y/n/=.
    + Optional data: The full path and filename to the file.
    +

    + +

  20. Display .a?? file with control codes and wait: + This will display a ANSI or ASCII file to the user with + control codes and wait for Enter when it is finished.
    + Optional data: The filename without extension of the + file to display.
    +

    + +

  21. Display line This entry does nothing except + that it displays the text on the display line. This is always displayed, + even if the display line is empty. In that case an empty line is displayed.
    + Optional data: None.
    +

    + +

  22. Chat session This connects the user to the + chatserver. The user is connected with his unix name as default name. The chat + server is a very simple IRC look alike server.
    + Optional data: None yet, maybe the channel later.
    +

    + +

+ +
+Index + Main Index  +Back + Menus Index +
+ + + diff --git a/html/menus/menu100.html b/html/menus/menu100.html new file mode 100644 index 00000000..8cec5c46 --- /dev/null +++ b/html/menus/menu100.html @@ -0,0 +1,148 @@ + + + + + + + + + + + +MBSE BBS Menus - File Area Menus. + + + +
+
Last update 02-Feb-2001
+

MBSE BBS File Area Menus

+
+ +
    + +
  1. Select another area: This option will show + a list of available areas and let the user select a new area. If there is + optional data the new area will be selected without user intervention.
    + Optional data: If there is an option the area is direct + selected. Current options are: F+ goto next available area. + F- goto previous available area.
    +

    + +

  2. File List: This option will display a list + of files with their dates, sizes and description. During the display of the + list the user can select (Tag) files for later download.
    + Optional data: None.
    +

    + +

  3. View File: Not yet implemented.
    + Optional data: None.
    +

    + +

  4. Download File(s): This option will start to + transmit files to the user if he has tagged files for download. Tagging files + for download can be done during File List, Keyword Scan, Filename Scan or + Newfile Scan. If a user didn't select a transfer protocol before now he will be + forced to select a file transfer protocol.
    + Optional Data: None.
    +

    + +

  5. Raw Directory: This option will display the + contents of a directory in raw format.
    + Optional data: If the option is /F the + contents of the current directory is shown. If the option is the full path + to a directory, the contents of that directory is shown.
    +

    + +

  6. Keyword Scan: This option will search for + files in the files database for a matching keyword. The search is not case + sensitive. If there are files found the user is able to select (Tag) these + files for later download.
    + Optional data: None.
    +

    + +

  7. Filename Scan: This option will search for + a filename match in the files database. The search is not case sensitive. + If there are files found the user is able to select (Tag) these files for + later download.
    + Optional data: None.
    +

    + +

  8. Newfiles Scan: This option will scan for new + files available for download since the last time the user was online. As + option the user can change that date from which to start the search. Any files + found the user may select (Tag) for later download.
    + Optional data: None.
    +

    + +

  9. Upload: This option will let the user upload + files to the bbs. If the current area has an alternate upload area, the upload + will end up in that area. If the user uses X-modem or another ancient protocol + he will first be asked for a filename. Normal modern protocols don't need this. + The filename is checked before the transfer is done to protect the bbs. Further + the files the user will upload will at first be placed under the users home + directory ~/upl. After the upload(s) the files are checked + for virusses. If all is well, the file is imported in the bbs. If the file + contains a valid FILE_ID.DIZ file inside the archive, that file will be used + for the description of the upload, if not, the uploader will have to describe + the file.
    + Optional data: None.
    +

    + +

  10. Edit Taglist: This option is for the user to + edit the list of files he has tagged for later download.
    + Optional data: None.
    +

    + +

  11. View file in homedir: Not yet implemented.
    + Optional data: None.
    +

    + +

  12. Download Direct: Download a file direct.
    + Optional data: The full path and filename to the file to + download.
    +

    + +

  13. Copy file to Homedir: This option will copy + a file from a download directory to the users home directory. It will be + checked if the user has enough room in his directory, the default Quota for + users is 10 MBytes.
    + Optional data: None.
    +

    + +

  14. List Homedir: This option will list the files + in the users home directory.
    + Optional data: None.
    +

    + +

  15. Delete in Homedir: This option will let the + user delete one or more files from his home directory.
    + Optional data: None.
    +

    + +

  16. Unpack file in Homedir: Not yet implemented.
    + Optional data: None.
    +

    + +

  17. Pack files in Homedir: Not yet implemented.
    + Optional data: None.
    +

    + +

  18. Download Homedir: This option will let the + user download from his home directory.
    + Optional data: None.
    +

    + +

  19. Upload Homedir: This option will let the user + upload files to his home directory.
    + Optional data: None.
    +
+ +
+Index +Main Index  +Back +Menus Index +
+ + + diff --git a/html/menus/menu200.html b/html/menus/menu200.html new file mode 100644 index 00000000..aeed25f6 --- /dev/null +++ b/html/menus/menu200.html @@ -0,0 +1,153 @@ + + + + + + + + + + + +MBSE BBS Menus - Message Area Menus. + + + +
+
Last update 20-Feb-2003
+

MBSE BBS Message Area Menus

+
+ +
    + +
  1. Select another area: This option will show + a list of all available areas and let the user select a new area. If there + is optional data the area will be selected without user intervention.
    + Optional data: If there is an option the area is direct + selected. Current options are M+ goto the next available + area. M- goto the previous available area. If you use the + U+ and U- instead, the area is changed to the + previous or next area with unread messages, areas without unread messages are + skipped.
    + Another option is the N, if this is used for area select the + areas with new unread mail are marked with a yellow star. +

    + +

  2. Post a Message: This option lets the user + post a new message.
    + Optional data: None.
    +

    + +

  3. Read Messages: This option lets the user + read messages. If he has done that before in that area he will be suggested + to start after the message he has last read. During reading of messages + the user can reply to other messages.
    + Optional data: None.
    +

    + +

  4. Check for Mail: Check for new arrived mail.
    + Optional data: None.
    +

    + +

  5. Quickscan Messages: Make a quick overview + list of all messages in that area.
    + Optional data: None.
    +

    + +

  6. Delete a Message: This option will let the + user delete a specific message. He must the the owner of that + message or have sysop rights in that area to be able to delete a message.
    + Optional data: None.
    +

    + +

  7. Mail Status: This gives a complete overview + of all available mail at the bbs.
    + Optional data: None.
    +

    + +

  8. OLR: Tag Area: This option lets + the user tag one or more areas to be included in his offline mail packet.
    + Optional data: None.
    +

    + +

  9. OLR: Untag Area: This option lets + the user untag one or more areas not to be included in his offline mail + packet.
    + Optional data: None.
    +

    + +

  10. OLR: View Tags: This option lets + the user view which areas will be included in his offline mail packet.
    + Optional data: None.
    +

    + +

  11. OLR: Restrict Date: Not yet + implemented.
    + Optional data: None.
    +

    + +

  12. OLR: Upload Mail: Let the user upload + mail or a new offline reader setup. The packet format is automatic detected. + Currently BlueWave is supported. QWK support will be added later.
    + Optional data: None.
    +

    + +

  13. OLR: Download BlueWave: Download mail in + BlueWave version 2 format.
    + Optional data: None.
    +

    + +

  14. OLR: Download QWK: Download mail in QWK + format.
    + Optional data: None.
    +

    + +

  15. OLR: Download ASCII: Download mail in flat + ASCII format. Not yet implemented.
    + Optional data: None.
    +

    + +

  16. Read Email Read users private email.
    + Optional data: None.
    +

    + +

  17. Write Email Post an email message.
    + Optional data: None.
    +

    + +

  18. Trash Email Put email in the trashcan. + Not Yet implemented.
    + Optional data: None.
    +

    + +

  19. Choose Mailbox Choose another private + mailbox. Valid boxes are: mailbox (normal in/out), archive and trash.
    + Optional data: If there is an option the area is direct + selected. Current options are M+ goto the next mailbox. + M- goto the previous mailbox.
    +

    + +

  20. Quickscan Email Make a quick overview + list of all messages in the selected e-mail area.
    + Optional data: None.
    +

    + +

  21. Show area rules Show the rules of a + echomail area if such rulefile is present in the rules directory. The file + seached for needs to have a name that is the same as the area tag, or the area + tag plus .rul, or the first eight characters of the area tag plus .rul like + the rulefiles in the elist package.
    + Optional data: None.
    +

    + +

+ +
+Index +Main Index  +Back +Menus Index +
+ + + diff --git a/html/menus/menu300.html b/html/menus/menu300.html new file mode 100644 index 00000000..40a6ae58 --- /dev/null +++ b/html/menus/menu300.html @@ -0,0 +1,139 @@ + + + + + + + + + + + +MBSE BBS Menus - User Settings Menus. + + + +
+
Last update 01-Mar-2007
+

MBSE BBS User Settings Menus

+
+ +
    + +
  1. Change Transfer Protocol: Let the user + select a new file transfer protocol.
    + Optional data: None.
    +

    + +

  2. Change Password: Let the user change + his FidoNet password.
    + Optional data: None.
    +

    + +

  3. Change Location: Let the user change + his location.
    + Optional data: None.
    +

    + +

  4. Obsolete: This command does not exist.
    + Optional data: None.
    +

    + +

  5. Change Voicephone: Let the user change + his voice phonenumber.
    + Optional data: None.
    +

    + +

  6. Change Dataphone: Let the user change + his data phonenumber.
    + Optional data: None.
    +

    + +

  7. Change Expertmode: This command will be + removed.
    + Optional data: None.
    +

    + +

  8. Obsolete: This command does not exist.
    + Optional data: None.
    +

    + +

  9. Change Date of Birth: Let the user set a + new date of birth. Check's are done if the date is more or less realistic. + This command should not be made available users if you use the regular + date of birth validation check.
    + Optional data: None.
    +

    + +

  10. Change Language: Let the user select a new + default language.
    + Optional data: None.
    +

    + +

  11. Change Hotkeys: Let the user toggle the + use of Hotkeys on or off..
    + Optional data: None.
    +

    + +

  12. Change Handle: Let the user select a new + handle (nickname).
    + Optional data: None.
    +

    + +

  13. Change Don't Disturb: Let the user toggle + the "do not disturb" flag.
    + Optional data: None.
    +

    + +

  14. Change check for new files: Let the user + toggle the "check for new files at logon" flag.
    + Optional data: None.
    +

    + +

  15. Change fullscreen editor: Let the user + toggle the "use fullscreen editor" flag.
    + Optional data: None.
    +

    + +

  16. Change FS edit shortcut keys: Let the user + toggle the "FS edit shortcut keys between Emacs/Wordstar" flag.
    + Optional data: None.
    +

    + +

  17. Change Address: Let the user change his + three lines home address.
    + Optional data: None.
    +

    + +

  18. Change signature: Let the user change + his mail signature file (.signature in his home directory). He is allowed + to edit at most 4 lines of 74 characters.
    + Optional data: None.
    +

    + +

  19. Change OLR Extended Info: Let the user toggle + the setting of the Offline Reader download of extended info (kludges).
    + Optional data: None.
    +

    + +

  20. Change character set: Let the user change + the default character set for messages.
    + Optional data: None.
    +

    + +

  21. Change archiver: Let the user change the + archhiver to use to build offline reader packages.
    + Optional data: None.
    +

    + +

+ +
+Index +Main Index  +Back +Menus Index +
+ + + diff --git a/html/menus/menu400.html b/html/menus/menu400.html new file mode 100644 index 00000000..9d38cd6a --- /dev/null +++ b/html/menus/menu400.html @@ -0,0 +1,61 @@ + + + + + + + + + + + +MBSE BBS Menus - Oneliner Menus. + + + +
+
Last update 02-Feb-2001
+

MBSE BBS Oneliner Menus

+
+ +
    + +
  1. Oneliner Add: Let the user add a new + oneliner.
    + Optional data: None.
    +

    + +

  2. Oneliner List: Let the user list all the + available oneliners.
    + Optional data: None.
    +

    + +

  3. Oneliner Show: Let the user show a + specific oneliner.
    + Optional data: None.
    +

    + +

  4. Oneliner Delete: Let the user delete a + oneliner. In order to do so he must be the owner of that oneliner or + he must have sysop access level. The oneliner is not really removed, only + marked for deletion.
    + Optional data: None.
    +

    + +

  5. Oneliner Print: Show a random chosen + oneliner on the screen. If you make this command automatic, each time that + this menu is executed a new oneliner will popup.
    + Optional data: None.
    +

    + +

+ +
+Index +Main Index  +Back +Menus Index +
+ + + diff --git a/html/menus/menu500.html b/html/menus/menu500.html new file mode 100644 index 00000000..c82b5a7a --- /dev/null +++ b/html/menus/menu500.html @@ -0,0 +1,57 @@ + + + + + + + + + + + +MBSE BBS Menus - BBS List Menus. + + + +
+
Last update 02-Feb-2001
+

MBSE BBS BBS List Menus

+
+ +
    + +
  1. Add a BBS: Let the user add a BBS to the + BBS advertising database.
    + Optional data: None.
    +

    + +

  2. List BBS'es: Show a list of BBS'es in the + BBS database.
    + Optional data: None.
    +

    + +

  3. Show BBS: Show a specific BBS.
    + Optional data: None.
    +

    + +

  4. Delete BBS: Delete a specific BBS. The BBS + must have been entered by the user or the user must have sysop rights to + be able to delete a BBS.
    + Optional data: None.
    +

    + +

  5. Search BBS: Search for a specific BBS.
    + Optional data: None.
    +

    + +

+ +
+Index +Main Index  +Back +Menus Index +
+ + + diff --git a/html/mgetty.html b/html/mgetty.html new file mode 100644 index 00000000..a3e1afb4 --- /dev/null +++ b/html/mgetty.html @@ -0,0 +1,188 @@ + + + + + + + + + + + +Setup mgetty for MBSE BBS. + + + +
+
Last update 07-Jan-2002
+

Setup mgetty for MBSE BBS

+ +To handle incoming calls you can use mgetty written by +Gert Doering, (gert@greenie.muc.de). Others may work. You have to compile +mgetty with the -DFIDO flag to accept Fidonet mailer calls. +If you want incoming PPP calls as well, add the -DAUTO_PPP as well. If you want +to use ISDN, make sure you have ISDN support compiled in the kernel. +Below you can see the mgetty.config and login.config for mgetty that you may +need. +I have also included a part of my /etc/inittab to show how mgetty + will spawn from init. +

+ +


+
+# inittab       This is only a part of /etc/inittab!
+#               In this example it runs in runlevel 3 and 4.
+#
+# Serial lines
+s1:34:respawn:/usr/local/sbin/mgetty -i /opt/mbse/etc/issue ttyS0
+#
+# ISDN lines, two channels
+I1:34:respawn:/usr/local/sbin/mgetty -i /opt/mbse/etc/issue ttyI0
+I2:23:respawn:/usr/local/sbin/mgetty -i /opt/mbse/etc/issue ttyI1
+#
+# End of /etc/inittab
+
+
+
+# mgetty configuration file: mgetty.config
+#
+# ----- global section -----
+#
+# In this section, you put the global defaults, per-port stuff is below
+#
+# set the global debug level to "4" (default from policy.h)
+debug 4
+#
+# set the local fax station id
+fax-id ++31-255-515973
+#
+# access the modem(s) with 38400 bps
+speed 38400
+#
+#  use these options to make the /dev/tty-device owned by "uucp.uucp" 
+#  and mode "rw-rw-r--" (0664). *LEADING ZERO NEEDED!*
+port-owner uucp
+port-group uucp
+port-mode 0664
+#
+#  use these options to make incoming faxes owned by "root.uucp" 
+#  and mode "rw-r-----" (0640). *LEADING ZERO NEEDED!*
+fax-owner root
+fax-group uucp
+fax-mode 0640
+#
+#
+# ----- port specific section -----
+# 
+# Here you can put things that are valid only for one line, not the others
+#
+# Dynalink 1428EXTRA faxmodem at port 0 (COM1).
+#
+port ttyS0
+speed 57600
+switchbd 19200
+modem-type cls2
+init-chat "" \d\dAT&F&C1&D3X4W2B0M0Q0V1H0&K3S0=0 OK
+#
+#
+# ISDN ports.
+# With AT&E you set the MSN/EAZ the device should listen to.
+# This should for an MSN be your telephone number _with_ the area
+# code but _without_ the leading 0.  
+# For an EAZ the last digit of your EAZ.
+#
+port ttyI0
+modem-type data
+init-chat "" ATZ OK AT&E714015437&W0 OK AT&B512 OK
+#
+port ttyI1
+modem-type data
+init-chat "" ATZ OK AT&E714017198&W0 OK AT&B512 OK
+#
+# end of mgetty.config
+
+
+
+# login.config
+#
+# This is a sample "login dispatcher" configuration file for mgetty
+#
+# Format:
+#	username userid utmp_entry login_program [arguments]
+#
+# Meaning:
+#       for a "username" entered at mgettys login: prompt, call
+#	"login_program" with [arguments], with the uid set to "userid",
+#	and a USER_PROCESS utmp entry with ut_user = "utmp_entry"
+#
+#
+# Use this one for fido calls (login name /FIDO/ is handled specially)
+#
+#  mgetty has to be compiled with "-DFIDO", otherwise a fido call won't
+#  be detected.
+#
+/FIDO/	mbse	fido	/opt/mbse/bin/mbcico @
+#
+#
+# Automatic PPP startup on receipt of LCP configure request (AutoPPP).
+#  mgetty has to be compiled with "-DAUTO_PPP" for this to work.
+#  Warning: Case is significant, AUTOPPP or autoppp won't work!
+#  Consult the "pppd" man page to find pppd options that work for you.
+#  See also PPP-HOWTO on how to set this up.
+#
+/AutoPPP/ -	a_ppp	/etc/ppp/paplogin
+#
+# This is the "standard" behaviour - *dont* set a userid or utmp
+#  entry here, otherwise /bin/login will fail!
+#  This entry isn't really necessary: if it's missing, the built-in
+#  default will do exactly this.
+#  Here we replace the standard login with MBSE BBS login:
+#
+*	-	-	/opt/mbse/bin/mblogin @
+#
+#
+# end of login.config
+
+
+ +

+I have added the -i /opt/mbse/etc/issue options to the +mgetty line in /etc/inittab. +The file /opt/mbse/etc/issue is a plain textfile to give a small banner just +before the login prompt. +It could look like this:
+

+
+        .--.     Welcome at MBSE BBS Development.
+       |o_o |    --------------------------------
+       |:_/ |
+      //   \ \   This may or may not work today...
+     (|     | )
+    /'\_   _/`\
+    \___)=(___/  
+Powered by GNU/Linux.
+
+
+There is a default /opt/mbse/etc/issue installed by the installation script. +You need to edit this to insert your bbs name in it or even completely replace +this file for a nicer one. Don't make it too big, don't put control characters +or ANSI sequences in it as this may prevent some mailers to connect to your system. +

+I discovered that some systems don't have the right permissions on the serial +port for MBSE BBS. To fix this type the following commands: +

+su
+password: enter root password here
+chmod 666 /dev/ttyS0
+chown uucp.uucp /dev/ttyS0
+exit
+
+Note that /dev/ttyS0 is for COM1, /dev/ttyS1 for COM2 etc. This is not a nice +solution. If youre system allows it, try to add the the user mbse as +a legal user of your serial ports. Most distributions have some tool for this. +

+ +BackGo Back +

+ + diff --git a/html/misc/dropfile.html b/html/misc/dropfile.html new file mode 100644 index 00000000..549b4617 --- /dev/null +++ b/html/misc/dropfile.html @@ -0,0 +1,114 @@ + + + + + + + + + + + +BBS doors dropfiles. + + + +
+
Last update 23-May-2003
+

BBS doors dropfiles.

+ +

Dropfiles for Unix BBS systems.

+

+Not all options that are available under DOS or OS/2 can be used with Unix +BBS systems and must be faked. The doorfiles are written in the users +homedirectory when the user starts a door. +

 

+ +

DOOR.SYS format.

+

+The door.sys format is a 52 lines ascii textfile, each line is terminated with +a cr/lf pair. In the setup it is possible to force the creation of MM-DD-YYYY +dates instead of the MM-DD-YY style. Newer doors sometimes need that. +

+Line	Description
+-----	-----------------------------------------------------------------
+1	Port, 5 characters in DOS format, COM1: or COM0:
+2	Effective Baudrate, 19200 or 0 for COM0:
+3	Databits, always 8
+4	Nodenumber, 1..9999
+5	Locked baudrate, 19200 or tty portspeed for COM0:
+6	Screen display, Y=snoop on, N=snoop off, on Unix allways Y.
+7	Printer Y=on N=off, on Unix always N
+8	Page Bell Y=on N=off, on Unix allways Y
+9	Caller alarm Y=on N=off, on Unix allways Y
+10	Users first name and lastname
+11	Users location
+12	Voice/Home phone
+13	Work/Dataphone
+14	Users password.
+15	Security level, 0..32768
+16	Users number of calls
+17	Users last call date MM-DD-YY or MM-DD-YYYY
+18	Seconds remaining this call
+19	Time left in minutes
+20	ANSI, "GR" is yes, otherwise "NG"
+21	Screen length
+22	User mode, always N
+23	Always blank
+24	Always blank
+25	Subscription expire date MM-DD-YY or MM-DD-YYYY
+26	Users record number
+27	Default protocol
+28	Users total number of uploads
+29	Users total number of downloads
+30	Users daily download kilobytes total
+31	Daily download kilobyte limit
+32	Users date of birth MM-DD-YY or MM-DD-YYYY
+33	Path to users database files, cannot be used on Unix
+34	Path to message database files, cannot be used on Unix
+35	Sysop first and last name
+36	Users handle
+37	Next event starting time, "none" on Unix
+38	Error-free connection Y=Yes or N=No, always Y
+39	Always set to N
+40	Always set to Y
+41	Text color as defined in setup 7 = gray.
+42	Always 0
+43	Last new files scan date MM-DD-YY or MM-DD-YYYY
+44	Time of this call HH:MM
+45	Time of last call HH:MM
+46	Always set to 32768
+47	Number of files downloaded today
+48	Total kilobytes uploaded
+49	Total kilobytes downloaded
+50	Comment stored in users record
+51	Always set to 0
+52	Total number of messages posted
+
+

 

+ +

DOOR.SYS format.

+

+The door32.sys format is a 11 lines ascii textfile, each line is terminated with +a cr/lf pair. +

   
+Line	Description
+-----	-----------------------------------------------------------------
+1	Com type: 1=serial, 2=telnet, with mbse always 1
+2	Com port: 1 or 0 for local mode
+3	Effective baudrate: 19200 or 0
+4	BBS name
+5	User record number
+6	User's real name
+7	User's handle
+8	User's security level
+9	Time left in minutes
+10	Graphicsmode: 1 or 0
+11	Node (line) number
+
+ +BackGo Back +
+ + + diff --git a/html/misc/filefind.html b/html/misc/filefind.html new file mode 100644 index 00000000..069afd78 --- /dev/null +++ b/html/misc/filefind.html @@ -0,0 +1,332 @@ + + + + + + + + + + + +Implementation and Usage of FileFind Utilities. + + +
+ Document:   fsc-00xx
+ Version:    0.6
+ Date        Aug 30, 1995
+ Title:      Implementation and Usage of FileFind Utilities
+ Authors:    Robert Williamson FidoNet#1:167/104.0  robert@ecs.mtlnet.org
+
+  Intro
+
+    A portion of the document is derived from information in
+      AllFix.DOC by Harald Harms @ 2:281/910
+    with  additional  sections  from
+      FQuery.DOC by Robert Williamson @ 1:167/104
+
+        The  MSdos program ALLFIX by Harald Harms first introduced the idea
+    of searching for files via echomail.  The term applied to this function
+    is  'FileFind'.   A FileFind system allows sysops, points and BBS users
+    to  search  for  files  by  placing  a  message  to 'ALLFIX' in an echo
+    designated  for  the purpose of finding files.  All FTN sites running a
+    FileFind  processor which is configured to scan that echo will reply to
+    that  user if there any files matching his query.  This system provides
+    a  method  for  searching  many  FTN sites throughout the world, with a
+    single message.
+
+        FileFind  programs  work by either scanning through defined message
+    bases or scanning packets for defined AREA tagnames for messages to the
+    default  name  ALLFIX.   All FileFind programs MUST respond to the name
+    ALLFIX,  but  may also respond to the name FILEFIND and the name of the
+    particular  FileFind  program  in  use  or  defined  for the echo.  The
+    FileFind  program  will  process  these messages, examining the Subject
+    field  for  search  queries.  If any valid query is found, the FileFind
+    program  will  search  the  sites files database for files matching the
+    users's query.
+
+        If the FileFind program finds any matches, it will generate a reply
+    containing  a list of the files found, and some basic information ABOUT
+    the  system  posting  the reply.  When the user who initially wrote the
+    request  reads  the reply, he will then be able to decide if any of the
+    reported  files  meet  his  needs,  and  from the ABOUT included in the
+    reply, learn where and how he may get those files.
+
+
+  FileFind Query Message Structure
+
+    To: name_of_FileFind program
+
+    The  message  must be addressed to ALLFIX so that all FileFind programs
+    can  respond.   To  use  features  specific  to  a  particular FileFind
+    program,  or  to  limit  the  responses  to  a particular platform, the
+    message  should  be  addressed  to  that program's name.  Some FileFind
+    programs  will  respond  to more than two names.
+
+    Subject:
+    A  space-separated  list  of  file  specifications,  keywords or quoted
+    strings.
+
+    keyword     - single word preceeded by a '/' with no intervening spaces,
+                  must be at least 3 characters, not including the '/'.
+                  a keyword search is in actually a substring search of the
+                  site's filelist.
+
+    description - string enclosed in double-quotes,
+                  if a single word, must be more than 3 characters.
+
+    filespec    - single word, no spaces, no double-quotes or preceding /,
+                  must be at least 3 characters, not including any wildcard
+                  or pattern matching charcaters, such as '*'.
+                  Messages addressed to ALLFIX must not have any embedded
+                  pattern matching characters.
+
+
+        The  minimum  number  of  characters  for  description, keyword and
+    filespec  queries  is an implementation detail of the FileFind program.
+    These  values  should  be configurable, but should never be settable to
+    values of less than 3.
+
+        Each  implementation  should  allow  the  operator  the  ability to
+    configure a list of disallowed keywords.
+
+  NetMail Queries
+
+        Some  FileFind  programs  may also have the ability to process file
+    search  queries  received  as  netmail and addressed to the name of the
+    particular  FileFInd  program  with this capability.  In this case, all
+    replies are via netmail also.
+
+  NetMail Commands
+        FileFind   Netmail   commands  are  identifed  by  a  leading  '%'.
+    Implementation  of  netmail  commands  is  optional.   If  implemented,
+    compliant  FileFind  utilities  should be able to process the following
+    minimum NetMail command set.
+
+
+    %HELP       - netmail only, returns an extended help text for the
+                  FileFind program, the ABOUT of the the site and a list
+                  of MAGIC freqable names.
+    %ABOUT      - netmail only, returns the ABOUT of the site and a full
+ or %MAGIC        list of MAGIC names.
+
+    %NEWFILES   - netmail only, returns the NEWFILES list of the site
+ or %NEW          via netmail.
+
+    Extended NetMail Commands:
+        Implementation  of  the  following netmail commands is optional and
+    not required for compliance with the FileFind NetMail Command set.
+
+    %REPORT <tagname>
+                - sends a configuration report for echo <tagname>
+                  this allows an echo moderator to check if a site running
+                  a  FileFind  utility  is  compliant with the rules of the
+                  filefind echo.
+
+    %REQUEST <filename>
+                - if found, will place requested file on hold for remote
+                  site
+
+    %UUREQUEST <filename>
+                - if  found,  and  the filesize after uuencoding is less
+                  than 60K, it will be sent as multiple netmail messages
+
+
+  The Site ABOUT
+
+        Obviously,  a  system that neither accepts file requests nor allows
+    users  to  download  on  their  first  call should not be responding to
+    FileFind  messages.   If  there  are  any limitations for the caller to
+    acquire  any  of  the  files  that  the  site  has  advertised as being
+    available  in  it's FileFind response, these limitations MUST be listed
+    in  the  reply.   This information should be included in the ABOUT file
+    that the FileFind program user creates.
+
+        The  site  ABOUT  should  contain  the  following information.  The
+    FileFind  program  implementor  should  instruct  his  users  on  these
+    requirements.
+
+      - sitename
+      - site operator's name
+      - complete phonenumber
+      - baud rate
+      - hours during which filerequests are accepted, if at all
+      - hours during which users can download
+      - conditions for file requests and user downloads
+      NOTE: the above information should be within the first 14 lines.
+      optional:
+      - a list a MAGIC names
+      - an indication if magic names are also available to terminal users.
+
+  Searching for Files and Creating Replies
+
+        The  method  used by the FileFind program to search for requests is
+    up  to  the  implementor.   However,  if searching a list, the FileFind
+    program should confirm the actual existance of all files that match the
+    query specification.
+
+        The  FileFind  program  should  only  process  description strings,
+    filespecs  or  keywords  that  contain more than 3 valid characters and
+    should  have configuration options to define greater minimum lengths on
+    a per-echo basis.
+
+        For  filespecs,  the  wildcard  character '*' IS considered a valid
+    specification  as  well  as the '?' wildcard, but only the '?' is to be
+    counted  as  a  character  when  determining the length of query.  File
+    extensions  are  not necessary and any characters AFTER a '*' are to be
+    ignored.   The  FileFind  program should be configurable so as to allow
+    replacement  all  of the file extensions with '.*' or '#?' dependant on
+    platform.   This  results  in  queries being independant of the various
+    archivers in use.
+
+    Replies
+
+        Replies  created  by  FileFind  utilities  are  expected  to  be in
+    compliance with the following FTN specifications:
+        FTS-0001    -  packed message format
+        FTS-0009    -  MSGID/REPLY
+        FSC-0046    -  PID and tear line
+
+        In  addition, a FileFind utility may use the FID:  control line for
+    any  information needed that cannot be put in a PID:  without violating
+    that specification.
+
+        ^AFID: ascii text CR
+
+    Must be less than 80 characters including ^A and terminating CR.
+
+    There  are three ways in which the FileFind program can create replies:
+        - write the replies in the echo in which the query appeared.
+        - write the replies in an echo that has been specifically
+          designated for that purpose in the particular FTN or for
+          a gorup of echos in that FTN.
+        - reply via routed netmail.
+
+        Since each FTN site connected to a particular FileFind program area
+    is  capable  of creating an information reply, there is much concern as
+    to  the  amount  of  traffic  that  can  be generated, FileFind program
+    developers  must  be sensitive to these concerns by providing the means
+    to  their users to limit the traffic on a per-echo basis.  For example,
+    various  FileFind  echos  have  rules  limiting  the  size or number of
+    replies,  or  the length of the system information that may be included
+    in a reply.
+
+  Limiting replies
+
+    It is strongly suggested that some default limitations be built-in.
+
+    Limiting Site Header (ABOUT):
+
+        If the site's ABOUT, (the text that has been configured in order to
+    add  the  system's  information  and Magic names list to the reply), is
+    greater  than  14  lines,  the  remainder should NOT be posted.  A line
+    should  be  added  to  the response indicated this, and the user may be
+    invited to either Freq or download the MAGIC name's ABOUT or MAGIC, for
+    a  full  list of magic names.  The FileFind program may optionally send
+    the full system information and magic name list via routed netmail.
+
+    Limiting Match List due to ambiguity of query:
+
+        If  the list of matches (note:  not the size of the message itself)
+    is  greater than 32K, the FileFind program should post a message to the
+    user to indicate that his query may have been too ambiguous and perhaps
+    invite him to freq or download the MAGIC name FILES for a full list.
+
+    Splitting Match List into Multiple Messages:
+
+        If the list of matches is greater than 10K, it should be split into
+    multiple  messages  of  no more than 8K.  Although the backbone permits
+    messages  up  to  16K  in length, 8K is a more readable size.  Only the
+    first  split  message  may  contain  the ABOUT information of the site.
+    Each  message must be given both a unique Subject field (eg:  prepended
+    by  "Part n/n") and a unique MSGID:.  This because some tossers may use
+    either or both for dupe detection.
+
+    Limiting Number of Split Messages:
+
+        If  the  number of messages is greater than the preset limit of the
+    echo,  and  the FileFind Program does not have an option to forward the
+    replies  via  netmail,  the  replies  should  be discarded and the user
+    informed that his request may have been too amibiguous.
+
+
+    NetMail Reply:
+
+        The  FileFind program may have an option to forward all replies via
+    routed netmail, or to do so under certain conditions as outlined above.
+    Obviously, if the FileFind program can process netmail queries, it MUST
+    respond via netmail.
+
+    User NetMail Reply Request:
+
+        Alternativly the user can request a netmail reply for his echomail
+    query by preceeding the query with either "%" or "!".
+      eg;
+        Subject:  % /fsc /fts
+
+        If  the  FileFind  program  does  not support this feature, it must
+    ignore  any  echomail  query message that has a "%" or "!" as the first
+    WORD of the Subject field.
+
+    Second Reply or Extended Response Request:
+
+        The  FileFind  site  indicates  availablility  of  Second  Reply by
+    placing the string 'program_name 4d_address' in the From:  field of the
+    message.
+        eg: FROM: FQUERY 1:167/104.0
+
+        When a user replies to a FileFind reply, the message will be to the
+    FileFind  program  @  {network  address}.  When processing the FileFind
+    conferences, the FileFind program will treat any message to itself that
+    includes the site address as a Second Reply Request.
+
+        If  this feature is available, the FileFind program will include up
+    to  a maximum of 15 files (maximum 12K match list) in it's replies.  If
+    the  user  wants  a  more  detailed  listing,  he simply replies to the
+    FileFind  program's  reply.   Only  the system that posted the original
+    reply  will  respond to that new request.  This second, specific reply,
+    will  contain  up  to  50  files (32K of matchlist) either including or
+    SKIPPING the first 15.  These numbers may be replaced by byte limits in
+    some implementations.
+
+    No Second Reply in Designated Reply Echo:
+
+        The Designated Reply Echo method does not allow replies to be made,
+    because  the FileFind program may not be permitted to scan a Designated
+    Reply  Echo.  The FileFind program should automatically report up to 50
+    files  for any requests.  Therefore, the traffic limitaion features may
+    be  disabled for networks that require the FileFind program to reply in
+    a Designated Reply Echo, and disallow Second Reply in that echo.
+
+    Disable Local Messages:
+
+        The  FileFind  program must be able to to disable the processing of
+    local  messages.  What this means is that the FileFind program will not
+    process  any messages generated on that FTN site, including messages by
+    the  sysop  using  an  offline  reader,  or by a site's BBS or off-line
+    reader users.  This should NOT exclude messages from a site's points.
+
+
+    Limit by Age:
+
+        The  FileFind program must be configurable so that the operator can
+    limit  the  age  of an query message that is acceptable for processing.
+    This  should  be  in  number  of  days.   The  FileFind  program may be
+    configured  to  process all the FileFind requests regardless of how old
+    they are.  Age should never be greater than 365 days.
+
+    LinkMGR Support:
+        Implmentors  may choose to support the LinkMGR proposal for netmail
+    queries  and  commands.   In this proposal, the queries and commands do
+    not  appear  in  the  subject  field but rather, in the the BODY of the
+    message.  The subject field wil contain the LinkMGR password.
+        Use of the LinkMGR method allows the user to send multiple commands
+    to the fIleFind program.
+
+ +BackGo Back + + + + diff --git a/html/misc/fileid.html b/html/misc/fileid.html new file mode 100644 index 00000000..2df5a824 --- /dev/null +++ b/html/misc/fileid.html @@ -0,0 +1,388 @@ + + + + + + + + + + + +FILE_ID.DIZ Information. + + + +
+FILEID.TXT v1.8 by Richard Holler [CIS 73567,1547]
+Last Revision 05/05/94
+
+This text file was prepared at the request of the ASP (Association of 
+Shareware Professionals), but the information contained in it may be of 
+value to any shareware author.
+
+
+FILE_ID.DIZ INFORMATION
+-----------------------
+Basically, the FILE_ID.DIZ file is a straight ASCII text file, distributed 
+inside your distribution archive file along with your program files, which 
+contains a description of your program. This file will be used by most BBS 
+(Bulletin Board System) softwares for the online file description of your 
+file. We recommend that the FILE_ID.DIZ file be used in all of your 
+distribution archives. 
+
+This text file contains a description of the FILE_ID.DIZ file, as well as a 
+description of the recommended distribution archive format.
+
+
+WHY SHOULD YOU USE FILE_ID.DIZ?
+-------------------------------
+The use of this file will insure that the online description of your 
+program will be in your own words (and who better to describe your program 
+than yourself?), and that it will remain the same no matter how many 
+different people upload your file to various BBS systems. 
+
+As more and more BBS software makes use of this file, you can be assured 
+that your own description will replace such online descriptions as "Cool 
+Program" or "OK utility, but needs better ..."
+
+Please note that the ASP Hub Network, the Author Direct FDN (File 
+Distribution Network), and the majority of other electronic distribution 
+services *REQUIRE* that a valid FILE_ID.DIZ file be contained in your 
+submitted distribution archive. If your file doesn't contain a valid 
+FILE_ID.DIZ file, then it simply won't be distributed by these services. 
+Furthermore, most BBS sysops will not accept uploads of files which do not 
+contain a valid FILE_ID.DIZ file, so you automatically lose out on that 
+distribution as well.
+
+
+DESCRIPTION:
+------------
+FILE_ID.DIZ was created by Clark Development for use with their PCBDescribe 
+utility, as a means for BBS callers to upload a file without having to 
+manually type in a file description. It also ensures that the online 
+description is always the same regardless of the number of different BBS 
+systems the file is posted on. It has since been accepted by the BBS 
+industry more-or-less as the "standard" file description source. (The 
+extension of "DIZ" actually stands for "Description In Zip").
+
+NOTE: The FILE_ID.DIZ file *MUST* be named exactly that, and *NOT* 
+something like <filename>.DIZ. It will *ONLY* be used if it is named 
+FILE_ID.DIZ!
+
+The FILE_ID.DIZ file is nothing more than a straight ASCII text file which 
+contains the full description of the archived file containing it. It is 
+used by most popular BBS software to describe your program, rather than 
+using the description supplied by the person that uploaded your file. It 
+should be placed *INSIDE* your distribution archive file.
+
+The BBS software will "look" inside the archive file. If a FILE_ID.DIZ file 
+is found, it will replace any existing online file description with the 
+text contained in FILE_ID.DIZ. It is an excellent method for making sure 
+that your program files are described the way that "you" want them 
+described. Even sysops who's software can't automatically make use of the 
+FILE_ID.DIZ file have found it to be an excellent source for their manually 
+added file descriptions.
+
+
+STRUCTURE:
+----------
+The file consists of straight ASCII text, up to 10 lines of text, each line 
+being no more than 45 characters long. It should *NOT* contain any blank 
+lines, any form of centering or formatting, or any Hi-ASCII or ANSI 
+characters. (i.e. it should ONLY contain alpha & numeric characters).
+
+We recommended that it consist of 5 basic parts:
+
+   1. the proper name of your program
+   2. the version number
+   3. the "ASP" identifier (optional, for ASP members)
+   4. the description separator
+   4. the description
+
+All of the above parts should be separated by a single "space".
+
+PROGRAM NAME: To set it apart from the rest, it is recommended that you use 
+ALL CAPS for the program name.
+
+VERSION NUMBER: The version number should be in the form of "v12.34". 
+
+ASP IDENTIFIER: If you are an ASP author, we recommend that an "<ASP>" 
+identifying mark be added after the version number, to identify your 
+product as an ASP-authored product.
+
+DESCRIPTION SEPARATOR: To separate the actual description text, insert a 
+simple "-" (dash/minus) character after the ASP identifier (or version 
+number, if not using the ASP identifier), and in front of the description 
+text.
+
+DESCRIPTION: You should attempt to FULLY describe your product, including 
+its most important functions and features. Be sure to include anything 
+which will separate your program from it's competition, and make the BBS 
+user want to download your file. Also try to include any hardware or 
+software requirements that your product may have.
+
+You should try to use the first 2 lines of the text to give a basic 
+description of your program. This is helpful for sysops who's BBS software 
+limits them to less than 10 lines, 45 characters. Sysops who are limited to 
+using shorter descriptions can simply use the 1st two lines and truncate 
+the rest. Thus, you can basically still supply your own description for BBS 
+software which does not actually utilize the FILE_ID.DIZ feature.
+
+The remaining lines of text can be used to elaborate on the programs 
+features, enhancements from the prior version, information concerning 
+multi-file sets. Please note that older versions of some BBS software can 
+only use 8 lines of text. It is advisable that you create your FILE_ID.DIZ 
+file so that the file can be truncated to various line lengths without 
+destroying it's usefulness.
+
+
+EXAMPLE
+-------
+MY PROGRAM v1.23 <ASP> - A program which will
+do anything for anybody. Will run in only 2k
+of memory. Can be run from the command line,
+or installed as a TSR. Completely menu-
+driven. Version 1.23 reduces the previous 4k
+memory requirements, and adds an enhanced
+graphical user interface. Also, MY PROGRAM 
+now contains Windows and DESQview support. 
+Coming soon - an OS/2 version.
+From Do-It-All Software, Inc. $15.00
+
+
+MULTIPLE DISK INFO
+------------------
+Please note that if your distribution archive requires multiple archive 
+files, you should create a separate, specific FILE_ID.DIZ file for each 
+archive. This can be utilized to describe the various contents of each 
+archive, and to identify each disk in the set. For example, the FILE_ID.DIZ 
+file for disk #1 could contain:
+
+   "MY PROGRAM v1.23 <ASP> Program Executable 
+    Files - Disk 1 of 2"
+    [followed by detailed description text]
+
+while the FILE_ID.DIZ file for disk #2 could contain:
+
+   "MY PROGRAM v1.23 <ASP> Documentation Files - 
+    Disk 2 of 2"
+    [followed by more detailed description text]
+
+Optionally, you could also create a "complete" FILE_ID.DIZ file for the 
+first disk, which would fully describe the program in detail, and identify 
+it as Disk 1 of x. Then, for each remaining file in the set, simply include 
+the Program Name, version number, ASP identifier, and the disk number (i.e. 
+"MY PROGRAM v1.23 <ASP> Disk 2 of x").
+
+
+ADDITIONAL INFO
+---------------
+Please don't be tempted to use fancy graphic or ANSI sequences in the 
+FILE_ID.DIZ file, as most BBS software will not allow this, and will render 
+your FILE_ID.DIZ file useless. Also, don't be tempted to simply copy your 
+program description file to FILE_ID.DIZ. Attempting to "format" your 
+FILE_ID.DIZ file (i.e line centering, right & left justification, etc) will 
+also cause unexpected results, especially for BBS software which re-formats 
+descriptions to other than 10line/45char.
+
+Fred Hill <ASP> has written a freeware utility which interactively creates 
+a valid FILE_ID.DIZ file. The file is called DIZGEN.ZIP and can be found on 
+CompuServe (GO IBMBBS, Library 2) as well as on many fine BBS systems. I 
+highly recommend that you download a copy of this wonderful utility for 
+creating your FILE_ID.DIZ files.
+
+==========================================================================
+
+The following is a recommendation for the structure and contents of 
+distribution archives prepared for use on BBS systems.
+
+
+DISTRIBUTION DISK RECOMMENDATIONS
+---------------------------------
+The following are recommendations for preparing your program files for 
+distribution to Bulletin Board Systems (BBSs) via the ASP's distribution 
+services, as well as other methods.
+
+Two varieties of program files are defined here:
+
+1) Program files which utilize an "install" utility and self-extracting 
+program archives (later referred to as "Author-Installed Programs").
+
+2) Programs files which do not use install utilities or self-extracting 
+archives (later referred to as "User-Installed Programs").
+
+
+AUTHOR-INSTALLED PROGRAMS:
+--------------------------
+These programs require a bit more work from the author, but will eliminate 
+many user mistakes, especially in programs which require complicated 
+setups.
+
+Most "installation" utility programs will make use of program files which 
+have been "archived" into Self-Extracting (SFX) archives. We will attempt 
+to define which files should be contained in the Self-Extracting archives, 
+and which files should not.
+
+1. Files which should be contained in the self-extracting program file
+archive:
+
+        a. All program-specific executable files.
+        b. Any required configuration and/or data files required by the
+           program.
+        c. Program documentation files. Optionally, these may be left
+           outside of the self-extracting archive, in order to allow
+           them to be viewed/read by the various archive viewing utlities.
+        d. Any other program-specific files that are required for the
+           operation of the program.
+
+2. The files described above should be compiled into a self-extracting 
+archive file, which will then be extracted by the install utility.
+
+NOTE: the author is required to abide by any distribution requirements 
+specified by the archive utility author, and to obtain any required 
+distribution rights necessary. Please check to see if distribution rights 
+are required for your archive utility choice.
+
+3. Files which should NOT be contained in the self-extracting program file 
+archive:
+
+        a. The install utility itself (obviously).
+        b. The FILE_ID.DIZ file. (described in detail in the section
+           preceding this one)
+        c. Any distribution/information files, such as VENDOR.TXT,
+           SYSOP.TXT, etc.
+        d. Any description or information file, such as DESCRIBE.TXT.
+        e. A user file (such as README.1ST), which should explain how
+           to use the install utility, what the user should expect
+           during the installation, and any preparation that the user
+           should make prior to the installation. This file might also
+           contain a brief description of your program, in case the user
+           is able to read the documentation files in the distribution
+           archive prior to downloading (many BBS systems offer this
+           ability to the user).
+
+4. The actual distribution archive file (described below) should then 
+contain the install utility, the self-extracting program archive, and the 
+files described in #3 above.
+
+
+USER-INSTALLED PROGRAMS:
+------------------------
+This type of distribution archive is much simpler than the Author-Installed 
+variety. It should simply be an archive file, containing all of the files 
+for the program described above.
+
+Since this type of program requires the user to do all of the installation 
+manually, it should contain very specific and detailed information 
+regarding the installation requirements (such as INSTALL.TXT).
+
+
+THE DISTRIBUTION ARCHIVE FILE:
+------------------------------
+The actual distribution archive file should merely be an archive file 
+containing the files described above. For BBS distribution, this archive 
+should be of the standard archive format, and -NOT- a self-extracting 
+archive.  Many sysops will not allow self-extracting archives, and most BBS 
+software will not allow self-extracting archives to be uploaded.
+
+There are many popular archive utilities available, such as PKZIP, LHA, 
+LHARC, ARJ, etc. Most BBS systems are capable of handling archives in 
+virtually any format. However, you should be aware that most BBS systems 
+will convert your archive format to the format of choice by the sysop. By 
+following the methods described above, this conversion process should not 
+affect your program, or any self-extracting files which are contained 
+within your distribution archive file.
+
+You should also retain the default archive file extension defined by the 
+archive utility. For example, PKZIP uses a ".ZIP", LHARC uses "LZH", etc. 
+Changing the file extension may cause the BBS software to delete your file 
+because it doesn't recognize the format.
+
+For the actual filename for your distribution archive, it is recommended 
+that the program filename be limited to 6 characters to represent the 
+program's name (i.e. MYPROG could represent "My Program"). This should be 
+followed by 2 numeric digits which will represent the version number of 
+your release. Even if this is your initial release it should include the 
+version number in the filename (i.e. MYPROG10.ZIP would indicate the 
+program called "My Program" version 1.0).
+
+Please note that CompuServe limits filenames to only 6 characters. By 
+limiting the file "name" to 6 characters, you will easily be able to rename 
+the archive for CompuServe uploading by simply removing the 2-digit version 
+identifier, to make the file compatible with CompuServe libraries.
+
+By including the 2-digit version number in the archive filename, it will be 
+very easy for both the user and the sysop (and yourself) to identify older 
+versions of your program.
+
+
+MULTIPLE DISTRIBUTION ARCHIVES
+------------------------------
+At one time, it was recommended that your final distribution archive not be 
+larger than 350k, so that it would fit on a single 360k floppy disk and 
+still leave room for any distribution files necessary for Disk Vendors. 
+(i.e. Disk Vendors will often include their own GO.BAT file, or other 
+various small files to help their customers install the software). This 
+limitation is slowly falling by the wayside as more and more computer 
+systems have 3.5" floppy disk drives as standard.
+
+If your program is large enough to require more than one distribution 
+archive, it is recommended that your filename be limited to 5 characters 
+rather than 6 as described above. Following the 5-character name should be 
+the same 2-digit version number. Then, append a single "letter" to identify 
+the disk (i.e. MYPGM10A.ZIP, MYPGM10B.ZIP, etc.). For uploading to 
+CompuServe, these filenames may then be shortened to 6 characters by 
+removing the version identifiers (i.e. MYPGMA.ZIP, MYPGMB.ZIP). However, 
+for CompuServe it is recommended that you simply create a single 
+distibution file, and eliminate the multi-part file set.
+
+If your program requires multiple distribution archives, -BE SURE- to 
+create separate FILE_ID.DIZ files for each distribution archive. Also, each 
+FILE_ID.DIZ file should contain disk number information pertaining to each 
+individual archive (i.e. Disk 1 of 3, Disk 2 of 3, etc.).
+
+
+THE DISTRIBUTION DISK
+---------------------
+It is recommended that your distribution disk simply contain a ZIPd version 
+of your product. However, If you choose to supply "unarchived" files on a 
+distribution disk for Disk Vendor use, it is _VERY_ important that you 
+specify in your documentation a suggested archive filename, so that BBS 
+sysops can create archived files with the proper author-specified 
+filenames. This information should be contained in your SYSOP.TXT (or 
+VENDOR.TXT) file. If you don't supply a suggested archive file name, the 
+sysops will be forced to create the name themselves, thus you may end up 
+with thousands of versions of your products on BBS systems all over the 
+world, but all with different filenames.
+
+Please note that the ASP Hub Network, and nearly every other electronic 
+distribution service *REQUIRE* that your files be submitted as an archived 
+file, using the ZIP format. Also note that many BBS sysops will not go to 
+the trouble of ZIPing your unarchived files for you. If you don't supply 
+them with an archived distribution version of your product, it might not 
+get distributed by BBSs.
+
+If you supply your own disk labels, it is recommended that the ASP logo, or 
+at least the initials "ASP" be included on the label, so that anyone can 
+immediately identify your disk as an ASP member's software.
+
+
+SUMMARY
+-------
+Your distribution disk should now be ready to submit to the various BBSs, 
+distribution services, and Disk Vendors.
+
+You may choose to create a separate distribution disk for use by BBSs and 
+Disk Vendors. However, if you follow the above steps in preparing your 
+distribution archive file, a separate "Disk Vendor" disk is probably not 
+necessary. The majority of disk vendors will be able to accept your 
+distribution file/disk if it is prepared in the above described format.
+
+
+ +BackGo Back + + + + diff --git a/html/misc/ftpserver.html b/html/misc/ftpserver.html new file mode 100644 index 00000000..96285add --- /dev/null +++ b/html/misc/ftpserver.html @@ -0,0 +1,108 @@ + + + + + + + + + + + +Howto setup an FTP server to work with MBSE BBS. + + + +
+
Last update 03-Sep-2005
+

How to setup an FTP server to work with MBSE BBS.

+ +In order to let MBSE BBS and your FTP server to both function together you must +organize a special file structure. Note that even if you don't setup an FTP +server you must still create a structure like this for the fidonet mailer, +if you don't, mail and files will get lost! +This description is written for ProFTPD, +on your distribution there may be another ftpd installed. +Read the section for the webserver as well. +

+

The filestructure I used is as follows:

+
+/opt/mbse/ftp/pub/dos_util/dos_4dos	- Public download areas
+         |   |   |        /dos_disk
+         |   |   |        /dos_file
+         |   |   /virnet/mcafee
+         |   |   |      /win16
+         |   |   |      /win32
+	 |   |   /css/files.css         - Stylesheet for http download
+         |   /incoming			- FTP public upload.
+         /var/bso/outbound		- Your default outbound
+             |   /outbound.009		- Outbound Zone 9
+             /inbound		        - Inbound directory
+             /private/upload		- Non-public download areas
+             |       /sysop
+             |       /logfiles
+             /tic_queue			- Queue for .tic files.
+
+
+To let this work you need to change the default anonymous directory of the +ftp server to /opt/mbse/pub. As root, edit /etc/passwd with the vipw +command. Look for the entry of the ftp user and change his homedirectory to +/opt/mbse/ftp. You may also use the command usermod -d /opt/mbse/ftp ftp +to do the same. For a start the default configuration file for ProFTPD will do +fine. If you want to let users upload into the incoming directory, you need to +change /etc/proftpd.conf file to allow that. + +

+If another DOS/Windows style mailer has access to your MBSE outbound you must +set the DOS path and Unix path in mbsetup (1.4.12 and 1.4.13) to +"m:" and "/opt/mbse". Note that to get +forwarding of .tic files to work the tic_queue must be a +subdirectory of "/opt/mbse" too. You could actually use any drive letter for +the DOS path.
+This means that a fidonet file attach from the dos_4dos public download +directory shall get the subject "M:\FTP\PUB\DOS_UTIL\DOS_4DOS\COMMAND.ZIP". +Only use this if you need it! +

+ +As you can see, anonymous ftp users can't get to the mail, non-public +downloads etc. Normally, your BBS users have unix accounts and will be able +to do a ftp login and access any directory on your system. Because the bbs +users have mbsebbs as their shell and this shell is not in the file +/etc/shells the ftp daemon will not let the bbs users in. So even +your own bbs users must login as anonymous to get files from the ftp server. +

+The following is a list of file permissions when using ProFTPD: +

+ +

+Directory               	owner group mode perms
+------------------------------- ----- ----- ---- ----------
+/opt/mbse			mbse  bbs   0775 drwxrxxr-x
+/opt/mbse/ftp			root  root  0755 drxxr-xr-x
+/opt/mbse/ftp/pub		mbse  bbs   0755 drwxr-xr-x
+/opt/mbse/ftp/incoming   	ftp   ftp   0755 drwxr-xr-x
+
+
+Note that all subdirectories under ../pub also must be owned by mbse + and group bbs and have at least mode 755 as long +as it are real bbs subdirectories. The bbs will maintain these directories +automatic and must have the rights to do so. + +

+In the /opt/mbse/ftp/etc/group file, add the group bbs so that your directory +listings give the proper groupname instead of a number. +

+ +If you want to increase the download counters when files are downloaded via ftp +you must make sure that the ftp daemon logs the downloads to a xferlog +file, for example /var/log/xferlog. This logfile must be readable by user mbse. +Then in mbsetup menu 1.13.5 enter full filename and path to this logfile. +The mball program will parse this file and increase the download counters +for the files that are downloaded from the bbs. +

+ +BackGo Back +

+ + + diff --git a/html/misc/index.htm b/html/misc/index.htm new file mode 100644 index 00000000..7fd0f041 --- /dev/null +++ b/html/misc/index.htm @@ -0,0 +1,46 @@ + + + + + + + + + + + +Miscellaneous Documents + + + +
+
Last update 10-Feb-2001
+

Miscellaneous Documents

+ +

Introduction

+

+This is an overview of used unofficial documents for the development of the +MBSE BBS package. +

+


+

Documents

+ + +
+ +IndexBack to Index +
+ + + diff --git a/html/misc/ipmailer.html b/html/misc/ipmailer.html new file mode 100644 index 00000000..e4075d35 --- /dev/null +++ b/html/misc/ipmailer.html @@ -0,0 +1,174 @@ + + + + + + + + + + + +Integration of IP-Nodes in the nodelist. + + + +
+Publication:    FSP-????
+Revision:       1
+Title:          Integration of IP-Nodes in the nodelist (FTS-0005)
+Author:         Lothar Behet, 2:2446/301
+Revision Date:  25 October 1998
+Expiry Date:
+----------------------------------------------------------------------
+
+Contents:
+1. Required fields according to FTS-0005, basic flags for ip-nodes
+2. Optional extensions
+3. Addendum
+----------------------------------------------------------------------
+
+1.  Description of the nodelist format
+--------------------------------------
+
+Every node entry contains the following 8 fields:
+
+keyword,node_number,node_name,location,sysop_name,
+phone_number,baud_rate,flags
+
+Certain fields have defined values according to FTS-0005.
+
+1.1.	Implementation for IP-connectivity
+	Because of the limited characterset in the phone_field and
+	to avoid any misinterpretion by conventional dialing, the
+	ip-specific address-information is entered in another field
+	and there are additional flags required.
+
+1.1.1.  Field #1 (keyword) is PVT for an ip-only node without
+	conventional phone number related connectivity. In this
+	case, the phone field contains "-Unpublished-" according
+	to FTS-0005.
+
+1.1.2.  Field #2 (node_number) contains the node number within his
+	net and zone.
+
+1.1.3.  Field #3 (node_name) is used for the FQDN (Fully Qualified
+	Domain Name) or the ip-address.
+
+1.1.4.  Field #4 (location) contains the geographical location of
+	the node. While some nets/regions cannot supply their
+	ip-only nodes with a adequate link, these nodes may be
+	collected in a seperate net or region, until their original
+	net/region support additional ip-connectivity. This special
+	net/region is definitely a temporary solution for routing
+	within a region or zone!
+
+1.1.5.  Field #5 (sysop_name) represants the name of the system
+	operator.
+
+1.1.6.  Field #6 (phone_number) contains the phone_number for
+	conventional connectivity. In case of an ip-only node
+	it must contain "-Unpublished-".
+
+1.1.7.  Field #7 (baud_rate) contains the maximum baud rate for
+	conventional connectivity or 300 in case of an ip_only node.
+
+1.1.8.  Field #8 (flags) represents operational definitions for the
+	node.
+	Note that these are user flags.
+	The ip-flags consist of two parts:
+	A basic transport and an optional non-standard port,
+	seperated by a colon.
+	The default port may be omitted, but is listed as optional
+	parameter in this document. In some cases, two flag names
+	are mentioned:
+	The second one is supported by some software nowadays, but
+	these values may conflict with other programs, which not
+	completely decode the length of each individual flag (i.e.
+	TELN conflicts with the T-flag for online-time)
+	Additional flags for ip-nodes are:
+
+1.1.8.1.  IBN[:24554] (Argus: BND[:24554])
+	BinkP protocol
+
+1.1.8.2.  IFC[:60179]
+	Raw protocol as used by ifcico
+
+1.1.8.3.  ITN[:23] (Argus: TEL[:23])
+	Telnet protocol. Some variants of ifcico support Telnet
+	on port 60177, which should be added as additional flag
+	ITN:60177.
+
+1.1.8.4.  IVM[:3141]
+	Vmodem protocol
+
+1.1.8.5.  IP
+	General flag for special protocol specifications, if the
+	flags conforming to 1.1.8.1. to 1.1.8.4. are not relevant.
+
+1.1.9.  Comments on the proposed nodelist flags
+	The additional flagnames in () are supported at this moment
+	by Argus, based on the use in z2r50. But the TEL[NET]-flag
+	stays in conflict with the generally in all zones and
+	regions used T-flag (online time according to FSC-0062).
+
+
+2.  Optional extensions for future use
+--------------------------------------
+
+While the above mentioned flags (1.1.8.1 to 1.1.8.4) define a
+minimum set of operational flags for ip-nodes, several additions
+are already foreseeable at this moment.
+
+2.1.	Additional sessions_handshake parameters
+	There is at least one program, which supports several
+	transport protocols according to chapter 1.1.8. on a
+	single port. If other programs should imitate this habit,
+	then the following extension to the flag suite 1.1.8.
+	(transport[:port[:handshake]])is advised:
+
+2.1.1.  FTS-0001 session handshake:   1
+2.1.2.  Yoohoo session handshake  :   Y
+2.1.3.  EMSI sessions handshake   :   E
+2.1.4.  BinkP sessions handshake  :   B
+
+2.2.	Non-handshaking protocols
+	While the definitions until this chapter describe direct
+	handshaking sessions with optional password authentification,
+	there are several other methods for the tunneling of fidonet
+	data via the internet available.
+	The setup of these connections does not rely on the nodelist
+	(at this moment of writing), but we can think of standard
+	setup procedures to use the nodelist for configuration of
+	this additional transport methods.
+	Therefore the following flags 2.2.1. to 2.2.4. are advised
+	for at least informational purpose.
+
+2.2.1.  IFT
+	FTP (File Transfer Protocol)
+
+2.2.2.  ITX
+	TransX, an Email based variant
+
+2.2.3.  IUC
+	Uuencoded packet (one packet per message)
+
+2.2.4.  IEM
+	Email based (generally, without exact specification at
+	this moment)
+
+
+3.  Addendum
+------------
+
+This proposal is based on a maximum compatibility to generally used
+definitions and standards within the Fidonet community.
+Future developments might make additions necessary, if they can not
+be expressed with the existing set of flags as defined by this FSP.
+
+ +BackGo Back + + + + diff --git a/html/misc/jam.html b/html/misc/jam.html new file mode 100644 index 00000000..0ad4d724 --- /dev/null +++ b/html/misc/jam.html @@ -0,0 +1,640 @@ + + + + + + + + + + + +JAM Message Base Proposal. + + + +
+Filename....: JAM-001
+Rev.........: 001
+Dated.......: 93-07-01
+Status .....: Released
+Subject.....: JAM message base proposal
+Author......: Joaquim Homrighausen
+Co-Authors..: Andrew Milner, Mats Birch, Mats Wallin
+
+    ---------------------------------------------------------------------
+                                  JAM(mbp)
+                The Joaquim-Andrew-Mats Message Base Proposal
+    ---------------------------------------------------------------------
+            Copyright 1993 Joaquim Homrighausen, Andrew Milner,
+                           Mats Birch, Mats Wallin.
+                             ALL RIGHTS RESERVED.
+    ---------------------------------------------------------------------
+
+
+    =====================================================================
+    Restrictions
+    ---------------------------------------------------------------------
+    JAM may be used by any developer as long as these specifications are
+    followed exactly. JAM may be used free-of-charge by any developer
+    for any purpose, commercially or otherwise.
+
+    This document may be freely copied and distributed, but must NEVER be
+    distributed in a modified form. If you have an enhancement request,
+    please contact the author of this document; do not change it
+    yourself.
+
+    All applications that support JAM must include one of the following
+    notices in their documentation and somewhere in the product's credit
+    section:
+
+    "JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner,
+                               Mats Birch, Mats Wallin.
+                               ALL RIGHTS RESERVED."
+
+    or
+
+    "This product uses the JAM(mbp) API -
+     Copyright 1993 Joaquim Homrighausen, Andrew Milner, Mats Birch,
+                    Mats Wallin. ALL RIGHTS RESERVED."
+
+    No organization, company, person, entity, or other being may impose
+    any fees for any reason for providing this document or the
+    accompanying API. This document and the accompanying API may not be
+    sold or otherwise transferred for personal or company gain under any
+    circumstances.
+
+    =====================================================================
+    Definitions and general notes
+    ---------------------------------------------------------------------
+    CURRENTREV                1
+
+    JAM                       The JAM message base format.
+
+    CRC                       Cyclic Redundancy Check. All CRC values
+                              calculated on strings must assume that the
+                              data within the string has been converted
+                              to lowercase (A-Z = a-z).
+
+    CRC-32                    32-bit CRC (as used in the Zmodem file
+                              transfer protocol) value. The polynom for
+                              a CRC-32 is edb88320H and the CRC-32 seed
+                              is -1L (ffffffffH).
+
+    uchar                     Unsigned 8-bit value
+
+    ushort                    Unsigned 16-bit value
+
+    ulong                     Unsigned 32-bit value
+
+    UNIX date                 An ulong representing the number of seconds
+                              since midnight, January 1, 1970. UNIX-style
+                              dates is the only form of time stamps used
+                              in JAM (1).
+
+    Message #                 The physical record number within the index
+                              file is used as a message number. The
+                              lowest message number is one (1) and the
+                              highest message number is 4294967295
+                              (ffffffffH).
+
+    FTN                       FidoNet Technology Network
+
+    FTS                       FidoNet Technical Standard
+
+    (1) All timestamps created locally (i.e. those not imported from
+        other systems) are stored in local time.
+
+    =====================================================================
+    Files
+    ---------------------------------------------------------------------
+    Each conference is made up from four files. How and where these files
+    are stored and named is implementation dependant. The only file with
+    a fixed minimum size is the .JHR (header data) file. It has a 1024-
+    byte block used to hold information about a specific message area as
+    described later.
+
+    filename.JHR - Message header data
+    filename.JDT - Message text data
+    filename.JDX - Message index
+    filename.JLR - Lastread information
+
+    A future revision of JAM may also include a file that holds the
+    following three items:
+
+      - The highest assigned user number
+      - The last generated message ID
+      - A global conference list with the conference name, description,
+        and physical location of the message base.
+
+    =====================================================================
+    .JHR file header
+    ---------------------------------------------------------------------
+    Below is the format of the 1024-byte record at the beginning of all
+    .JHR files. The first actual message header starts at offset 1024 in
+    the .JHR file.
+
+    FixedHeaderInfoStruct:
+        ulong   Signature;       // <J><A><M> followed by <NUL>
+        ulong   datecreated;     // Creation date
+        ulong   modcounter;      // Update counter
+        ulong   activemsgs;      // Number of active (not deleted) msgs
+        ulong   passwordcrc;     // CRC-32 of password to access
+        ulong   basemsgnum;      // Lowest message number in index file
+        uchar   RESERVED[1000];  // Reserved space
+    end;
+
+    MODCOUNTER must be incremented and updated on disk each time an
+    application modifies the contents of the message base. When it
+    reaches ffffffffH, it wraps to zero.
+
+    ---------------------------------------------------------------------
+    BaseMsgNum                        Lowest message number in index file
+    ---------------------------------------------------------------------
+    This field determines the lowest message number in the index file.
+    The value for this field is one (1) when a message area is first
+    created. By using this field, a message area can be packed (deleted
+    messages are removed) without renumbering it. If BaseMsgNum contains
+    500, the first index record points to message number 500.
+
+    BaseMsgNum has to be taken into account when an application
+    calculates the next available message number (for creating new
+    messages) as well as the highest and lowest message number in a
+    message area.
+
+    ---------------------------------------------------------------------
+    ????????.JHR                                          Message headers
+    ---------------------------------------------------------------------
+    The .JHR file contains none or more Header records. Each record
+    define one message and contains information about the message and its
+    text (if any). The Header record is of variable length. The layout of
+    the Header record follows.
+
+    MessageHeader:
+        MessageFixedHeader:
+            ulong  Signature;    // <J><A><M> followed by <NUL>
+            ushort Revision;     // Revision level of header          (1)
+            ushort ReservedWord; // Reserved for future use
+            ulong  SubfieldLen;  // Length of subfields               (2)
+            ulong  TimesRead;    // Number of times message read
+            ulong  MSGIDcrc;     // CRC-32 of MSGID line              (3)
+            ulong  REPLYcrc;     // CRC-32 of REPLY line              (3)
+            ulong  ReplyTo;      // This msg is a reply to..
+            ulong  Reply1st;     // First reply to this msg
+            ulong  Replynext;    // Next msg in reply chain
+            ulong  DateWritten;  // When msg was written
+            ulong  DateReceived; // When msg was read by recipient
+            ulong  DateProcessed;// When msg was processed by tosser/
+                                 // scanner
+            ulong  MessageNumber;// Message number (1-based)
+            ulong  Attribute;    // Msg attribute, see "Msg Attributes"
+            ulong  Attribute2;   // Reserved for future use
+            ulong  Offset;       // Offset of text in ????????.JDT file
+            ulong  TxtLen;       // Length of message text
+            ulong  PasswordCRC;  // CRC-32 of password to access message
+            ulong  Cost;         // Cost of message
+        end;
+        SubField1                // Extra fields as defined below
+        .
+        .
+        SubFieldXX
+    end;
+
+    (1) This field is intended for future revisions of the specifications
+        to allow the use of a different fixed-length binary message
+        header. The current revision level is one (1).
+
+    (2) The SubfieldLen field is set to zero (0) if the header does not
+        have any subfield data. I.e. the length of the binary header is
+        not included in this field.
+
+    (3) When calculating the CRC-32 of the MSGID and REPLY lines, the
+        text ^aMSGID: and ^aREPLY: should be removed as well as all
+        leading and trailing white space characters.
+
+
+    The SubField structure is made up of an ID, a length specifier, and
+    a block of data. Zero or more subfields may follow the fixed-length
+    binary header. SubFields are not stored in any specific order and
+    are not terminated by any specific character unless otherwise
+    specified.
+
+    SubField:
+        ushort  LoID;            // Field ID, 0-65535
+        ushort  HiID;            // Reserved for future use
+        ulong   datlen;          // Length of buffer that follows
+        uchar   Buffer[datlen];  // DATLEN bytes of data
+    end;
+
+    ---------------------------------------------------------------------
+    Defined LoID codes
+    ---------------------------------------------------------------------
+
+    ID=0, Name=OADDRESS
+
+    A network address. This is used to specify the originating address.
+    More than one OADDRESS field may exist. DATLEN must not exceed 100
+    characters. For a FidoNet-style address, this field must follow the
+    ZONE:NET/NODE.POINT@DOMAIN format where .POINT is excluded if zero
+    and @DOMAIN is excluded if unknown.
+
+
+    ID=1, Name=DADDRESS
+
+    A network address. This is used to specify the destination address.
+    More than one DADDRESS field may exist (e.g. carbon copies). DATLEN
+    must not exceed 100 characters. For a FidoNet-style address, this
+    field must follow the ZONE:NET/NODE.POINT@DOMAIN format where .POINT
+    is excluded if zero and @DOMAIN is excluded if unknown.
+
+
+    ID=2, Name=SENDERNAME
+
+    The sender (author) of the message. DATLEN must not exceed 100
+    characters.
+
+
+    ID=3, Name=RECEIVERNAME
+
+    The recipient of the message. DATLEN must not exceed 100 characters.
+
+
+    ID=4, Name=MSGID
+
+    Used to store the message identification data. All data not relevant
+    to the actual ID string, including leading and trailing white space
+    characters should be removed. DATLEN must not exceed 100 characters.
+
+
+    ID=5, Name=REPLYID
+
+    Used to store the message reply data. All data not relevant to the
+    actual reply string, including leading and trailing white space
+    characters should be removed. DATLEN must not exceed 100 characters.
+
+
+    ID=6, Name=SUBJECT
+
+    The subject of the message. DATLEN must not exceed 100 characters.
+    Note that this field may not be used for FidoNet-style file attaches
+    or file requests.
+
+
+    ID=7, Name=PID
+
+    Used to store the FTN PID kludge line. Only the actual PID data is
+    stored and ^aPID: is stripped along with any leading and trailing
+    white space characters. DATLEN must not exceed 40 characters.
+
+
+    ID=8, Name=TRACE
+
+    This is also referred to as ^aVia information in FTNs. It contains
+    information about a system which the message has travelled through.
+    The format of the field is <YYYYMMDDHHMMSS><Network address> where:
+
+       YYYY is the year (1992-9999)
+         MM is the month (01-12)
+         DD is the day (01-31)
+         HH is the hour (00-23)
+         MM is the minute (00-59)
+         SS is the second (00-59)
+
+    The timestamp is stored in ASCII (0-9) characters. The network
+    address is the address of the system. It is expressed in ASCII
+    notation in the native format of the forwarding system.
+
+
+    ID=9, Name=ENCLOSEDFILE
+
+    A file attached to the message. Only one filename may be specified
+    per subfield. No wildcard characters are allowed. If this subfield
+    is present in a message header, the ATTRIBUTE must include the
+    MSG_FILEATTACH bit.
+
+
+    ID=10, Name=ENCLOSEDFILEWALIAS
+
+    Identical to ENCLOSEDFILE with the exception that the filename is
+    followed by a <NUL> (00H) and an alias filename to be transmited to
+    the remote system in place of the local name of the file.
+
+
+    ID=11, Name=ENCLOSEDFREQ
+
+    A request for one or more files. Only one filemask may be specified
+    per subfield. If the filemask contains a complete path, it is to be
+    regarded as an update file request. If this subfield is present in a
+    message header, the ATTRIBUTE must include the MSG_FILEREQUEST bit.
+    To indicate that a password is to be transmitted along with the
+    request, a <NUL> (00H) character followed by the password is
+    appended. E.g. SECRET*.*<NUL>MYPASSWORD.
+
+
+    ID=12, Name=ENCLOSEDFILEWCARD
+
+    One or more files attached to the message. Only one filename may be
+    specified per subfield. Wildcard characters are allowed. If this
+    subfield is present in a message header, the ATTRIBUTE must include
+    the MSG_FILEATTACH bit.
+
+
+    ID=13, Name=ENCLOSEDINDIRECTFILE
+
+    One or more files attached to the message. The filename points to an
+    ASCII file with one filename entry per line. If alias filenames are
+    to be used, they are specified after the actual filename and
+    separated by a <NUL> (00H) character, e.g. C:\MYFILE.LZH<NUL>NEWS.
+    Wildcard characters are not allowed.
+
+
+    ID=1000, Name=EMBINDAT
+
+    Reserved for future use.
+
+
+    ID=2000, Name=FTSKLUDGE
+
+    An FTS-compliant "kludge" line not otherwise represented here. All
+    data not relevant to the actual kludge line, including leading and
+    trailing white space and ^A (01H) characters should be removed.
+    DATLEN must not exceed 255 characters. The FTS kludges INTL, TOPT,
+    and FMPT must never be stored as separate SubFields. Their data must
+    be extracted and used for the address SubFields.
+
+
+    ID=2001, Name=SEENBY2D
+
+    Used to store two-dimensional (net/node) SEEN-BY information often
+    used in FTN conference environments. Only the actual SEEN-BY data is
+    stored and ^aSEEN-BY: or SEEN-BY: is stripped along with any leading
+    and trailing white space characters.
+
+
+    ID=2002, Name=PATH2D
+
+    Used to store two-dimensional (net/node) PATH information often used
+    in FTN conference environments. Only the actual PATH data is stored
+    and ^aPATH: is stripped along with any leading and trailing white
+    space characters.
+
+
+    ID=2003, Name=FLAGS
+
+    Used to store the FTN FLAGS kludge information. Note that all FLAG
+    options that have binary representation in the JAM message header
+    must be removed from the FLAGS string prior to storing it. Only
+    the actual flags option string is stored and ^aFLAGS is stripped
+    along with any leading and trailing white space characters.
+
+
+    ID=2004, Name=TZUTCINFO
+
+    Time zone information. This subfield consists of four mandatory
+    bytes and one optional. The first character may be a plus (+) or a
+    minus (-) character to indicate a location east (plus) or west
+    (minus) of UTC 0000. The plus character is implied unless the first
+    character is a minus character. The following four bytes must be
+    digits in the range zero through nine and indicates the offset in
+    hours and minutes. E.g. 0100 indicates an offset of one hour east of
+    UTC.
+
+    ---------------------------------------------------------------------
+    Message attributes
+    ---------------------------------------------------------------------
+    MSG_LOCAL       (0x00000001L)   // Msg created locally
+    MSG_INTRANSIT   (0x00000002L)   // Msg is in-transit
+    MSG_PRIVATE     (0x00000004L)   // Private
+    MSG_READ        (0x00000008L)   // Read by addressee
+    MSG_SENT        (0x00000010L)   // Sent to remote
+    MSG_KILLSENT    (0x00000020L)   // Kill when sent
+    MSG_ARCHIVESENT (0x00000040L)   // Archive when sent
+    MSG_HOLD        (0x00000080L)   // Hold for pick-up
+    MSG_CRASH       (0x00000100L)   // Crash
+    MSG_IMMEDIATE   (0x00000200L)   // Send Msg now, ignore restrictions
+    MSG_DIRECT      (0x00000400L)   // Send directly to destination
+    MSG_GATE        (0x00000800L)   // Send via gateway
+    MSG_FILEREQUEST (0x00001000L)   // File request
+    MSG_FILEATTACH  (0x00002000L)   // File(s) attached to Msg
+    MSG_TRUNCFILE   (0x00004000L)   // Truncate file(s) when sent
+    MSG_KILLFILE    (0x00008000L)   // Delete file(s) when sent
+    MSG_RECEIPTREQ  (0x00010000L)   // Return receipt requested
+    MSG_CONFIRMREQ  (0x00020000L)   // Confirmation receipt requested
+    MSG_ORPHAN      (0x00040000L)   // Unknown destination
+    MSG_ENCRYPT     (0x00080000L)   // Msg text is encrypted          (1)
+    MSG_COMPRESS    (0x00100000L)   // Msg text is compressed         (1)
+    MSG_ESCAPED     (0x00200000L)   // Msg text is seven bit ASCII    (1)
+    MSG_FPU         (0x00400000L)   // Force pickup
+    MSG_TYPELOCAL   (0x00800000L)   // Msg is for local use only
+    MSG_TYPEECHO    (0x01000000L)   // Msg is for conference distribution
+    MSG_TYPENET     (0x02000000L)   // Msg is direct network mail
+    MSG_NODISP      (0x20000000L)   // Msg may not be displayed to user
+    MSG_LOCKED      (0x40000000L)   // Msg is locked, no editing possible
+    MSG_DELETED     (0x80000000L)   // Msg is deleted
+
+    (1) This revision of JAM does not include compression, encryption, or
+        escaping. The bits are reserved for future use.
+
+    =====================================================================
+    ????????.JDT                                             Message text
+    ---------------------------------------------------------------------
+    The .JDT file contains the text of messages. The text is stored as an
+    stream of seven or eight bit ASCII data. Allowed characters in the
+    text are 00H through ffH unless the header ATTRIBUTE field has the
+    MSG_ESCAPED bit enabled, in which case the legal range of data is 20H
+    through 7eH.
+
+    An escaped character is stored as \<hex> where <hex> is the two digit
+    hexadecimal ASCII value of the character. A single \ is stored as \\
+    or \5C. The case of the hexadecimal ASCII value is irrelevant, i.e.
+    5c is treated as 5C.
+
+    =====================================================================
+    ????????.JDX                                            Message index
+    ---------------------------------------------------------------------
+    The .JDX file is used to quickly locate messages for any given user
+    name or to locate a message with a specific number. Each record in
+    the file consists of two ulongs. The first ulong holds the CRC-32 of
+    the recipient's name (lowercase), the second ulong holds the
+    physical offset of the message header in the .JHR (header) file.
+
+    The record number (+BaseMsgNum) within the .JDX file determines a
+    message's number.
+
+    If both ulongs are -1 (ffffffffH), there is no corresponding message
+    header.
+
+    =====================================================================
+    ????????.JLR                                         Lastread storage
+    ---------------------------------------------------------------------
+    The .JLR file is used to maintain a user's position within a message
+    area. The layout of the "lastread" record follows. One record per
+    user is required.
+
+    LastRead:
+        ulong   UserCRC;         // CRC-32 of user name (lowercase)   (1)
+        ulong   UserID;          // Unique UserID
+        ulong   LastReadMsg;     // Last read message number
+        ulong   HighReadMsg;     // Highest read message number
+    end;
+
+    (1) The functions to convert a string to lowercase characters that
+        are provided in the API will only convert characters A-Z (into
+        a-z). It is required that this convention is followed by all
+        applications.
+
+    The UserID field is a unique number for each user. If the "lastread"
+    record is deleted, UserCRC and UserID are both set to -1
+    (ffffffffH). An application may not depend on any specific order in
+    the .JLR file. A user's "lastread" record may appear anywhere in the
+    file and must be searched for when retrieving it and when storing an
+    updated record.
+
+    =====================================================================
+    Updating message headers
+    ---------------------------------------------------------------------
+    If a header record grows after is has been retrieved from the .JHR
+    file, it must be appended to the end of the .JHR file since it would
+    overwrite the following header otherwise. The .JDX file must be
+    properly updated to indicate the new location of the header record.
+    The old header record must be changed to indicate that it has been
+    deleted by setting the MSG_DELETED bit in the Attribute field and the
+    TextLen field to zero (to prevent a maintenance program from removing
+    the message text that is now pointed to by another header).
+
+    =====================================================================
+    Message base sharing and locking
+    ---------------------------------------------------------------------
+    To allow several programs to access the message base at any given
+    time, region locking is used to protect the message base from being
+    corrupted during updates.
+
+    When an application needs to write to any of the message base files,
+    it must first attempt to lock the first byte of the .JHR (header)
+    file. If the lock call fails, the application must either fail or
+    attempt to lock the file again. The message base files may under no
+    circumstances be updated if the application cannot successfully lock
+    the .JHR file.
+
+    Note that data acquired (read) from the message base may not be used
+    when writing data to the message base, unless the application has
+    maintained a lock of the message base from the time the data was
+    acquired or the MODCOUNTER field is the same as when the data was
+    acquired.
+
+    The application must open the files in shareable (DENYNONE) read/
+    write or readonly mode. The only exception to this is an application
+    that requires exclusive access to the message base, such as a message
+    base maintenance utility, it should open the files in non-shareable
+    (DENYALL) read/write mode.
+
+    =====================================================================
+    Reply threads and linking
+    ---------------------------------------------------------------------
+    JAM introduces a new reply link pointer, not commonly used today.
+    This section is an attempt to describe how reply threads, reply
+    linking, and this new reply link pointer is implemented in JAM.
+
+    One of the major differences is that reply threads in JAM are not
+    based on similar or identical subjects of messages since this method
+    does not allow for proper reply threads.
+
+    The method used in JAM is based on the immediate relation between any
+    given message and direct replies to it. This is supported by many
+    message editors by using the MSGID and REPLY FTS kludge fields. These
+    are common, although expressed differently, in messages not based on
+    FidoNet technology, such as RFC-822. The obvious advantages include
+    allowing a program to easily find the original message to a reply,
+    and to find all replies to any given message.
+
+    The reply thread information consists of three fields: ReplyTo,
+    Reply1st, and ReplyNext. The reason for three fields, as opposed to
+    just two, is that with two fields, it is only possible to keep track
+    of the original message of a reply (which is sufficient) and one
+    reply to any given message (which is not sufficient). With three
+    fields, it is possible to maintain a thread of any number of replies
+    to any given message.
+
+    In the description of the different fields below, the following
+    messages and message numbers will be referred to:
+
+      1 -> 2 -> 4 -> 5
+      :    :
+      :    +--> 8
+      :
+      +--> 3 -> 7
+      :
+      +--> 6
+
+    Message number two, three, and six are replies to message number one.
+    Message number four and eight are replies to message number two.
+    Message number seven is a reply to message number three.
+    Message number five is a reply to message number four.
+
+    ---------------------------------------------------------------------
+    ReplyTo
+    ---------------------------------------------------------------------
+    This field holds the number of the message that this message is a
+    reply to. In the example above, the ReplyTo field would contain the
+    following values:
+
+    Message number one would contain zero; message number two, three, and
+    six, would contain one; message number four and eight would contain
+    two; message number seven would contain three, and message number
+    five would contain four.
+
+    ---------------------------------------------------------------------
+    Reply1st
+    ---------------------------------------------------------------------
+    This field holds the number of the first message that is a reply to
+    this message. In the example above, the Reply1st field would contain
+    the following values:
+
+    Message number one would contain two, message number three would
+    contain seven, and message number four would contain five. All other
+    messages would contain zero.
+
+    ---------------------------------------------------------------------
+    ReplyNext
+    ---------------------------------------------------------------------
+    This field is used to create the actual message thread or chain. In
+    the event that there is more than one reply to any given message, it
+    is necessary to maintain a thread of all the replies; this is due to
+    the fact that the original message can only hold information about
+    the first reply (the Reply1st field) to it.
+
+    The first reply (which the original message's Reply1st field holds),
+    has its ReplyNext field pointing to the second reply, the second
+    reply's ReplyNext field poinst to the third reply, and so on.
+
+    In the example above, the ReplyNext field would contain the following
+    values:
+
+    Message number two would contain three, message number three would
+    contain six, and message number four would contain eight. All other
+    messages would contain zero.
+
+    =====================================================================
+    Contacts
+    ---------------------------------------------------------------------
+    Joaquim Homrighausen                            Telefax: +352 316 702
+    389, route d'Arlon                                Modem: +352 316 702
+    L-8011 Strassen                               eMail: 2:270/17@fidonet
+    Luxembourg                                                joho@abs.lu
+
+    Andrew Milner                                   Telefax: +352 251 621
+    9a, Boulevard Joseph II                           Modem: +352 251 621
+    L-1840 Belair                                 eMail: 2:270/18@fidonet
+    Luxembourg                                             andrew@fido.lu
+
+    Mats Wallin                                    Telefax: +46 8 6453285
+    F”rskottsv„gen 11                                Modem: +46 8 6453882
+    S-126 44 H„gersten                           eMail: 2:201/329@fidonet
+    Sweden                                                     mw@fido.lu
+
+ +BackGo Back + + + + diff --git a/html/misc/outbound.html b/html/misc/outbound.html new file mode 100644 index 00000000..d3f1cb0c --- /dev/null +++ b/html/misc/outbound.html @@ -0,0 +1,103 @@ + + + + + + + + + + + +Binkley style outbound with MBSE BBS. + + + +
+
Last update 11-Jul-2004
+

Binkly style outbound documentation for MBSE BBS.

+ +The MBSE BBS outbound directory structure is BinkleyTerm compatible, with +domains and point subdirectories (full 5d). There are separate "protected" and +"unknown" inbound directories for incoming sessions. Files received during +outbound sessions are always placed in the "protected" inbound directory. Only +the "protected" inbound directory is processed automatic. +

+

+
+.pol	Poll flag, is handled as crash immediate, the length is always 0 bytes.
+
+	Flow files are files with the full pathnames to the files to send
+	on disk. Names are translated by MBSE BBS to full DOS filenames and
+	paths depending on your setup. 
+	If you use it then it is importand that you think about the directory
+	structure to use. See also the documentation about the setup of the
+	ftp server
+	The filenames may be prepended with a special character:
+	#	= Truncate file after sent.
+	- or ^	= Kill file after sent.
+	@	= Leave file after sent, this is the default. Upto version
+                  0.61.1 this was empty.
+
+.flo	Normal flow file (contains complete filenames to send).
+.clo	Crash flow file.
+.hlo	Hold flow file.
+.dlo	Direct flow file, overrides CM flag.
+
+	The following are .pkt files, during the mail session they will be
+	renamed to nnnnnnnn.pkt with an unique name and added to the spool
+	file. Messages can allways be added to the outbound as long as the
+	node isn't locked.
+
+.out	Normal .pkt file.
+.cut	Crash .pkt file.
+.hut	Hold .pkt file.
+.dut	Immediate .pkt file.
+
+.req	Request file. Contains filenames in ascii with <cr><lf>.
+
+.su0	Arcmail bundles, the last digit may be any digit or letter.
+.mo0
+.tu0
+.we0
+.th0
+.fr0
+.sa0
+
+.sts	Node status file created by mbcico. These are data files containing
+	three values: 
+	1. 'time', this is the time when a new call to this node is allowed.
+	    (in time_t format).
+	2. 'retries', is the number of retries to try to connect that node. This
+   	    field is zeroed when the call succeeds or when that node calls in.
+	    It is also zeroed when a new poll is created. Currently, mbcico stops
+	    calling a node if the counter is higher then 30.
+	3. 'code', is the return code of the last attempt.
+	0      - Successfull call
+	1      - No dialout port available
+	2      - No CONNECT or TCP connect failed
+ 	3      - Could not reset the modem
+	4      - System is locked
+	5      - Retry time not reached?
+	6      - Fatal error in nodelist lookup
+	7      - Call prohibited by config options
+	8      - Phone number unavailable
+	9      - No free matching port
+	10     - Unused
+	11..29 - Session (handshake) errors.
+	This file is not compatible with the .sts files created by ifcico.
+ +
+.spl	Spool file, created by mbcico.
+
+.bsy	Busy file, for locking nodes. The 'pid' of the process who locked that
+	node is inserted into this file. All programs of the MBSE BBS package
+	(and ifcico package) check if the pid exists if a .bsy file is found.
+	If there is no pid found, the lock is a stale lock and is removed.
+
+ +BackGo Back +
+ + + diff --git a/html/misc/semafore.html b/html/misc/semafore.html new file mode 100644 index 00000000..b2356cf6 --- /dev/null +++ b/html/misc/semafore.html @@ -0,0 +1,75 @@ + + + + + + + + + + + +Semafore files with MBSE BBS. + + + +
+
Last update 14-Sep-2004
+

Semafore files with MBSE BBS.

+ + +The directory $MBSE_ROOT/var/sema is the hardcoded semafore directory where all +semafore's must be created, tested and removed. When the system is booting, +the init script will erase all semafore's just before the BBS is started. +This description is valid from MBSE BBS v0.33.19 and newer. + +
+zmh		Purpose: to mark the state of Zone Mail Hour. 
+		Created by "mbtask" at the start of Zone Mail Hour.
+		Removed by "mbtask" at the end of Zone Mail Hour.
+
+upsalarm	Purpose: Signal that the system is running on battery power.
+		Created and removed by UPS software.
+		Checked by mbtask to suspend processing.
+		Checked by mbfido to stop processing.
+
+upsdown		Purpose: Signal that the system will go down on low battery.
+		Created and removed by UPS software.
+		Checked by mbtask to go down.
+		Checked by several scripts and "mbstat wait".
+
+newnews		Purpose: Signal that there are new articles on the news server.
+		Checked by mbtask to start news processing.
+		Removed by mbtask as soon as it is detected.
+
+mailout		Purpose: Signal that there is mail posted in the message base.
+		Checked by mbtask to start scan the message base.
+		Removed by mbtask as soon as it is detected.
+
+mailin		Purpose: Signal that there is new mail in the inbound.
+		Checked by mbtask to start the tosser.
+		Removed by mbtask as soon as it is detected.
+
+scanout		Purpose: Signal that the outbound must be rescanned.
+		Checked by mbtask to check the outbound.
+		Removed by mbtask as soon as it is detected.
+
+do_inet		Purpose: Signal that there are node(s) to be called via the
+		internet. Usefull for dialup systems to check whether a
+		connection to the internet is needed.
+		Created and removed by mbtask.
+
+is_inet		Purpose: Signal that the internet is available. Usefull for
+		dialup systems to check when the internet connection is up
+		or down after starting or stopping ppp.
+		Created and removed by mbtask.
+
+mbtask.last	Purpose: A timestamp created and touched by "mbtask" every
+		minute so you can check it is running.
+
+ +BackGo Back +
+ + + diff --git a/html/misc/usleep.html b/html/misc/usleep.html new file mode 100644 index 00000000..334303ba --- /dev/null +++ b/html/misc/usleep.html @@ -0,0 +1,70 @@ + + + + + + + + + + + +System load and the usleep() call. + + + +
+
Last update 23-Jan-2004
+

System load and the usleep() call.

+ +At some time when developping MBSE BBS I decided that background utilities +did't need full speed to do their jobs. BBS utilities under DOS needed +to run as fast as possible because you needed to bring the bbs down to run +these programs and users couldn't login during that time. +

+Starting with mball, the allfiles creator, I inserted code that does usleep(1) +after each 5 processed files. The 1 microsecond is not really the time the +program pauses, it's probably a lot longer. I think this depends on the +hardware type, (Intel, Sparc, Alpha etc) how long GNU/Linux will really suspends +executing the utility. +

+The program speed downgrade at the development machine that mball needed was +3 times the original exection time, while system loading stayed under 30%. +At that time the development machine is an 486DX2-66 with a Seagate ST32151N +SCSI harddisk. +

+The extra usleep code is only active if you run these utils with the -quiet +switch and when this is set in mbsetup. See menu 1->5. +With this switch, the program is mostly run by cron. If you onmit +this switch, this is probably when you start the program manually, it will +then always run at full speed, no matter what the setting in mbsetup is. +

+If you have a fast system or don't care that the performance of your system +drops because of background processing, you can turn this future off with +mbsetup in the global section. (menu 1->5). +

+Remember, if you have a PII-400 MMX or so with IDE disks, you may still have +performance problems and need to set that switch to yes. There is only one +way to find out if you need it. +

+Well, actually, I tested this on a Dell Latitude PII-266, setting the switch to +yes gave better performance then no. Why? The CPU has more time for the slow +IDE disk. With the slow switch on programs runs even faster then with the switch +off. Modern hardware (PIII and later) may run fine with the slow switch turned +off. +

+In januari 2004 the usleep code is replaced by a milliseconds timer written +around the nanosleep system call. This call conforms to POSIX.1b and is written +so that if the timer is interrupted it will resume with the time left to do. +The real minimum time the timer runs is 10 ms on Intel systems, see also man +nanosleep All usleep(1) calls are now msleep(1) calls, in practice these are +pauses of 10 ms. +

+Michiel. +

+ +BackGo Back +

+ + + diff --git a/html/misc/webserver.html b/html/misc/webserver.html new file mode 100644 index 00000000..09d249aa --- /dev/null +++ b/html/misc/webserver.html @@ -0,0 +1,121 @@ + + + + + + + + + + +Howto setup an webserver to work with MBSE BBS. + + + +
+
Last update 03-Jan-2006
+

How to setup an webserver to work with MBSE BBS.

+ +

Introduction

+

+To let a webserver work with MBSE BBS you must organize a special file +structure. +Note that even if you don't setup a webserver you must still create a +structure like this for the fidonet mailer, if you don't, +mail and files will get lost! +This description is written for Apache, +this is installed on most GNU/Linux and xxxBSD distributions. +For the directory structure, read the setup for +the FTP server. +

 

+ +

Important settings in mbsetup.

+

+Screen 1.18: +

+1.  Base path      /opt/mbse/ftp/pub
+
+Screen 1.19: +
+1.  Docs root      /var/www/htdocs
+2.  Link to ftp    files
+3.  URL name       http://www.mbse.ym
+
+The base ftp path is the default which mbse bbs installs. The Docs root for the +apache httpd server is different on each distribution, in this example it is set +for Slackware 8.0. Because the directory +/var/www/htdocs has nothing to do with /opt/mbse/ftp/pub we make an alias link +named files. For the URL name you must fill in the real internet name how +your bbs is reached. If someone types this in, he must get the index.html from +the directory /var/www/htdocs, the docs root. I just assume you have your http +server up and running. +

+Now you can run the command mbfile index, this will create a main index +in the directory /opt/mbse/ftp/pub and additional index.html files in all your +download areas. +

 

+ +

Change Apache server configuration.

+

+As root edit your httpd.conf file, it is possible that you find it in +/etc/apache, but that depends on your distribution. In the section between +<IfModule mod_alias.c> and </IfModule> insert the following lines: +

+    #
+    # Alias for MBSE BBS download areas.
+    #
+    Alias /files/ /opt/mbse/ftp/pub/
+    <Directory "/opt/mbse/ftp/pub">
+        Options Indexes MultiViews FollowSymLinks
+        AllowOverride None
+        Order allow,deny
+        Allow from all
+    </Directory>
+
+    #
+    # Alias to access the MBSE BBS documenatation
+    #
+    Alias /mbseman/ /opt/mbse/html/
+    <Directory "/opt/mbse/html">
+        Options Indexes MultiViews
+        AllowOverride None
+        Order allow,deny
+        Allow from all
+    </Directory>
+
+Then restart Apache with the command apachectl restart Now if you access +your webserver with for example http://www.mybbs.com/files/ you must be able to +browse the filelists. If you use http://www.mybbs.com/mbseman/ you must be able +to browse this documentation online. +

 

+ +

Example views

+

+This are some snapshots of how this will look like, click to enlarge: + + + + + + +
dreamlandbbsdreamlandbbsdreamlandbbs
+

 

+ +

Counting downloads

+

+If you want to increase the download counters when files are downloaded via www +you must make sure that the web logs the downloads to a access_log +file, for example /var/log/apache/access_log. +This logfile must be readable by user mbse and must be in combined +format. You can set this in your apache configuration file. +Then in mbsetup menu 1.13.4 enter full filename and path to this logfile. +The mball program will parse this file and increase the download counters +for the files that are downloaded from the webserver. +

+ +

+BackGo Back +

+ + + diff --git a/html/nodelist.html b/html/nodelist.html new file mode 100644 index 00000000..e1cf4120 --- /dev/null +++ b/html/nodelist.html @@ -0,0 +1,133 @@ + + + + + + + + + + + +Nodelist and Nidediff processing. + + + +
+
Last update 22-Jan-2002
+

Nodelist and Nodediff processing

+ +

Introduction

+

+A received a lot of questions about nodelist and nodediff processing, so +I will describe here the setup of the development system for the Fidonet +nodelist. First of all, it is very important that you +use three separate directories to do the nodelist processing. This is to +make sure that all stages are independent of each other, and if something +goes wrong, you still have a working system. The three directories are:
+

    +
  1. /opt/mbse/ftp/pub/fido/nodelist, this is the public +download area, the received diff's are stored here as well as the final +compressed nodelists for download. +
  2. /opt/mbse/tmp/nlwork, this is the working directory +to apply diffs to the previous nodelist. This directory should allways +contain the latest uncompressed nodelist. +
  3. /opt/mbse/var/nodelist, this is the systems nodelist +directory defined in mbsetup, menu 1.4.4 +
+In short the steps to process the nodediff's is as follows: +
    +
  1. Receive the nodediff and store it for download. +
  2. Apply the diff to the latest nodelist. +
  3. Hatch the new compressed nodelist. +
  4. Store the new nodelist for download. +
  5. Unpack the new nodelist in the nodelist compiler directory. +
  6. Set the compile semafore. +
  7. Compile the nodelists. +
+Next I will describe these steps in detail. +

 

+ +

The download area

+

+First define the download area for the bbs. In my case, this is area 20. From +here users can download the nodelists and nodediffs, files to the downlinks +are send from here. Below is the example of my system. +

+BBS download area 20 +

 

+ +

The NODEDIFF tic area

+

+From your uplinks you usually receive NODEDIFF or NODEDIZZ files. Create a tic area for +that purpose. I have keep# set to 5, this means the last 5 diff's are stored +in the download directory, older ones are removed. Now you can receive +nodediff files, store them for download, and send them to other nodes. +

+NODEDIZZ tic area +

 

+ +

Apply the diff

+

+We do this with the tic magic processor. In this example +I have NODELIST.007 in the /opt/mbse/tmp/nlwork directory. +Note that this filename is uppercase, they are usually stored and distributed +as uppercase names. As I receive the diff files as zip, the filemask on +my system is nodediff.z##. +This means that the file with the name nodediff.z14 in the area NODEDIZZ +is a match. The command that is executed expands to +mbdiff /opt/mbse/tmp/nlwork/NODELIST /var/spool/mbse/ftp/pub/fido/nodelist/nodediff.z14 -quiet +if the received nodediff is +nodediff.z14.
The mbdiff program applies +nodediff.z14 against NODELIST.007 in the +/opt/mbse/tmp/nlwork directory. If this is successfull, a +new NODELIST.014 is created there, a compressed +nodelist.z14 is created there and NODELIST.007 is +removed.
If this operation fails, only NODELIST.007 will stay +in that directory. +Because the ARC program for GNU/Linux isn't good for files, I +left the Arc files command empty in the archiver setup. As a fallback the +mbdiff program uses zip to create the compressed archive.
+If creating the new nodelist fails for some reason, a missed diff or so, +the whole processing stops here. The previous nodelist is still here and +you can manually correct the situation. So, if you missed a diff, see that +you get it and manually give the mbdiff commands as user +mbse until you are up to date. Or, place the latest +uncompressed nodelist in the directory /opt/mbse/tmp/nlwork. +

+Magic to apply the nodelist diff file +

 

+ +

Processing the new nodelist

+

+Now that we have created the new compressed nodelist, it has to go somewhere. +The file nodelist.z14 is in the directory +/opt/mbse/tmp/nlwork. The example for the hatch manager +is shown below. The hatch manager runs automatic with the comand +mbfido tic. This setup will hatch the new nodelist in the +tic area NODELIST The two screens below show the hatch and +tic setup for this area. +

+Hatch new nodelist +TIC area for new nodelist +

+Now that we have hatched the new nodelist and processed it the new nodelist +is stored in in the download area, and maybe send some copies to downlinks. +We now have to feed it to the nodelist compiler for our own system. +We use a tic magic command to do +that. In this case we unpack the nodelist in /opt/mbse/var/nodelist +and set the compile semafore so that the mbindex + will compile the new nodelist. Don't be afraid that the unpacked +nodelists will acumulate in the nodelist directory, mbindex +will handle that, only the latest two nodelists are kept there. The +mbindex program is started by the taskmanager +mbtask. +

+Magic copy nodelist and trigger compiler +

 

+ +BackGo Back +
+ + + diff --git a/html/postfix.html b/html/postfix.html new file mode 100644 index 00000000..66a55912 --- /dev/null +++ b/html/postfix.html @@ -0,0 +1,160 @@ + + + + + + + + + + + +MBSE BBS - Internet Gateway - Postfix setup. + + + +
+
Last update 25-Aug-2001
+

MBSE BBS - Internet Gateway - Postfix setup.

+ + +Of course you need to make all these changes as root. +Add the mbmail program as service to the postfix system by +adding two lines to master.cf. +
+
+#
+# Postfix master process configuration file.  Each line describes how
+# a mailer component program should be run. The fields that make up
+# each line are described below. A "-" field value requests that a
+# default value be used for that field.
+#
+# Service: any name that is valid for the specified transport type
+# (the next field).  With INET transports, a service is specified as
+# host:port.  The host part (and colon) may be omitted. Either host
+# or port may be given in symbolic form or in numeric form. Examples
+# for the SMTP server:  localhost:smtp receives mail via the loopback
+# interface only; 10025 receives mail on port 10025.
+#
+# Transport type: "inet" for Internet sockets, "unix" for UNIX-domain
+# sockets, "fifo" for named pipes.
+#
+# Private: whether or not access is restricted to the mail system.
+# Default is private service.  Internet (inet) sockets can't be private.
+#
+# Unprivileged: whether the service runs with root privileges or as
+# the owner of the Postfix system (the owner name is controlled by the
+# mail_owner configuration variable in the main.cf file).
+#
+# Chroot: whether or not the service runs chrooted to the mail queue
+# directory (pathname is controlled by the queue_directory configuration
+# variable in the main.cf file). Presently, all Postfix daemons can run
+# chrooted, except for the pipe and local daemons. The files in the
+# examples/chroot-setup subdirectory describe how to set up a Postfix
+# chroot environment for your type of machine.
+#
+# Wakeup time: automatically wake up the named service after the
+# specified number of seconds.  Specify 0 for no wakeup. Presently,
+# only the local pickup and queue manager daemons need a wakeup timer.
+#
+# Max procs: the maximum number of processes that may execute this
+# service simultaneously. Default is to use a globally configurable
+# limit (the default_process_limit configuration parameter in main.cf).
+#
+# Command + args: the command to be executed. The command name is
+# relative to the Postfix program directory (pathname is controlled by
+# the program_directory configuration variable). Adding one or more
+# -v options turns on verbose logging for that service; adding a -D
+# option enables symbolic debugging (see the debugger_command variable
+# in the main.cf configuration file).
+#
+# In order to use the "uucp" message tranport below, set up entries
+# in the transport table.
+#
+# In order to use the "cyrus" message transport below, configure it
+# in main.cf as the mailbox_transport.
+#
+# SPECIFY ONLY PROGRAMS THAT ARE WRITTEN TO RUN AS POSTFIX DAEMONS.
+# ALL DAEMONS SPECIFIED HERE MUST SPEAK A POSTFIX-INTERNAL PROTOCOL.
+#
+# ==========================================================================
+# service type	private	unpriv	chroot	wakeup	maxproc	command + args
+# 		(yes)	(yes)	(yes)	(never)	(50)
+# ==========================================================================
+smtp	  inet	n	-	n	-	-	smtpd
+pickup	  fifo	n	n	n	60	1	pickup
+cleanup	  unix	-	-	n	-	0	cleanup
+qmgr	  fifo	n	-	n	300	1	qmgr
+rewrite	  unix	-	-	n	-	-	trivial-rewrite
+bounce	  unix	-	-	n	-	0	bounce
+defer	  unix	-	-	n	-	0	bounce
+smtp	  unix	-	-	n	-	-	smtp
+showq     unix	n	-	n	-	-	showq
+error     unix	-	-	n	-	-	error
+local	  unix	-	n	n	-	-	local
+cyrus	  unix	-	n	n	-	-	pipe
+    flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
+uucp	  unix	-	n	n	-	-	pipe
+    flags=F user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
+ifmail    unix  -       n       n       -       1       pipe
+    flags=F user=fido argv=/usr/local/bin/ifmail -r $nexthop ($recipient)
+mbmail    unix  -       n       n       -       1       pipe
+    flags=F user=mbse argv=/opt/mbse/bin/mbmail ($recipient)
+bsmtp     unix  -       n       n       -       -       pipe
+    flags=F. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
+
+
+In main.cf change or add the line:
+
+relay_domains = $mydestination, f2802.n280.z2.fidonet.org
+
+The fidonet address will be your fidonet address of course. If you have more +fidonet aka's, add them as well seperated with commas. +

+ +Next you need to add mbmail to the +transport file. +


+
+# /etc/postfix/transport
+#
+# execute "postmap /etc/postfix/transport" after changing this file
+#
+# Local destinations
+#
+seaport.mbse.nl		local:
+www.mbse.nl		local:
+news.mbse.nl		local:
+#
+# Fidonet mailers at this machine. Test on several strings to make sure
+# it will catches everything.
+#
+z1                      mbmail:f2802.n280.z2.fidonet
+.z1                     mbmail:f2802.n280.z2.fidonet
+z2                      mbmail:f2802.n280.z2.fidonet
+.z2                     mbmail:f2802.n280.z2.fidonet
+z3                      mbmail:f2802.n280.z2.fidonet
+.z3                     mbmail:f2802.n280.z2.fidonet
+z4                      mbmail:f2802.n280.z2.fidonet
+.z4                     mbmail:f2802.n280.z2.fidonet
+z5                      mbmail:f2802.n280.z2.fidonet
+.z5                     mbmail:f2802.n280.z2.fidonet
+z6			mbmail:f2802.n280.z2.fidonet
+.z6			mbmail:f2802.n280.z2.fidonet
+fidonet			mbmail:f2802.n280.z2.fidonet
+.fidonet		mbmail:f2802.n280.z2.fidonet
+fidonet.org		mbmail:f2802.n280.z2.fidonet
+.fidonet.org		mbmail:f2802.n280.z2.fidonet
+
+
+Don't forget to run postmap /etc/postfix/transport. Now all +files are changed, run postfix reload to activate the +changes. + +

+ +BackGo back  +HomeGo to main +

+ + diff --git a/html/programs/index.htm b/html/programs/index.htm new file mode 100644 index 00000000..72716ab2 --- /dev/null +++ b/html/programs/index.htm @@ -0,0 +1,50 @@ + + + + + + + + + + + +MBSE BBS Programs. + + + +
+
Last update 13-Feb-2004
+

MBSE BBS Programs.

+ + +
    +
  1. mbaff, Announce newfiles and filefind +
  2. mball, Allfiles and newfiles list creator +
  3. mbcico, The Fidonet mailer ala ifcico +
  4. mbdiff, Nodelist difference processor +
  5. mbfido, Fidonet mail and files procesor +
  6. mbfile, Files database maintenance program +
  7. mbindex, Nodelist index compiler +
  8. mblang, Language datafile compiler +
  9. mblogin, Unix login replacement +
  10. mbmon, The monitor program +
  11. mbmsg, The messagebase utility program +
  12. mbnntp, The news server +
  13. mbout, The mailer outbound program +
  14. mbpasswd, The passwd wrapper +
  15. mbsebbs, The bbs program +
  16. mbseq, Sequence number creator +
  17. mbsetup, The setup program +
  18. mbstat, The bbs status change program +
  19. mbtoberep, The toberep.data lister +
  20. mbuser, The userbase maintenance program +
  21. mbuseradd, The adduser wrapper +
+ + +MainBack to Main index +
+ + + diff --git a/html/programs/mbaff.html b/html/programs/mbaff.html new file mode 100644 index 00000000..676aa38d --- /dev/null +++ b/html/programs/mbaff.html @@ -0,0 +1,99 @@ + + + + + + + + + + + +MBSE BBS Programs - mbaff - Announce new files and Filefind processor. + + + +
+
Last update 30-Jan-2001
+

mbaff - Announce new files and FileFind processor.

+ +

Synopsis.

+mbaff [command] <options> +

  + +

Description.

+

+mbaff +is the new files report generator and filefind server for mbsebbs. +In order to run mbaff +you must first start mbsed, +this is the deamon which controls all bbs activities. +

+When mbaff +is run with the commandline command announce +the first thing it does is to scan all the file databases for files +from which the announced flag is not yet set, and that area has a valid +newfiles groupname. These files are uploads for example. +If such a file is found the announced flag is set and +the file is added to the +toberep.data +file. This file may already contain +new files who were received as .tic files and processed by the +mbfido program. +After this is done the toberep.data +file is compared against the newfiles +reports to see if there is anything to report. If that's the case the +creation of reports begins in the echomail areas specified. After that the +toberep.data +file is erased and the mailout semafore set.
+The files to announce are divided into groups, the names of the groups are +set in the file download areas. If you plan this well, you can make seperate +announcements for several networks, announce files bij groups of file, ie. HAM +or .jpg pictures, GNU/Linux etc. +

+When +mbaff +is run with the commandline command +filefind +it will search each echomail area for unreceived messages addressed to +allfix or filefind. +It will read the message header and mark the message as received. The +search options are set on the subject line. All file areas for which the +filefind flag is set to true will be searched for the requested search +patterns. If there are files found a reply will be generated for the +user who wrote the request. If the reply area is different from the scan +area, the reply is placed in the reply area. If it's not set, the reply +goes into the same area. If the netmail option is set, the reply will +be sent by netmail. To prevent echomail overflow the replies in the same +area are limited to 15 found files, replies in the other echomail area +are limited to 50 files. Netmail replies will contain up to 100 files. +

 

+ +

Environment.

+

+In order to run mbaff you need to set one global environment variable +$MBSE_ROOT. +This variable must point to the root of the bbs directoy structure. The +main configuration file +config.data +must be present in the ~/etc subdirectory. +

 

+ +

Commands.

+

+mbaff announce - Announce new files.
+mbaff filefind - Process filefind requests. +

 

+ +

OPTIONS

+

+mbaff [command] -quiet - Quiet mode, no screen output. +Use this switch if you run mbaff from the crontab. +

+ +BackBack to index  +IndexBack to main index +

+ + + diff --git a/html/programs/mball.html b/html/programs/mball.html new file mode 100644 index 00000000..ac7dd03d --- /dev/null +++ b/html/programs/mball.html @@ -0,0 +1,75 @@ + + + + + + + + + + + +MBSE BBS Programs - Allfile listing generator. + + + +
+
Last update 11-Aug-2005
+

mball - Allfiles listing generator

+ +

Synopsis.

+

+mball [commands] <options> +

 

+ +

Description.

+

+mball is the allfiles and newfiles listing generator that +can be made available on your bbs for your users to get a complete listing +of wat is available for download. When used with the -zip +option it can also produce complessed versions of these two listings. The +resulting files are created in the current directory. After the creation of +these files you can hatch them into your bbs with the programs +mbfido tic when you properly setup a .tic file area for this purpose +and create records for the hatch manager. +

+Just before the reports are created, and if you defined WWW and FTP logfiles +with mbsetup in menu 1.13, the logfiles are analysed and and files +downloaded from the bbs are counted as valid downloads. To make sure downloads +are only counted once, a status file is created in ~/var, this marks the date +the last time the logfiles are checked. For the best results make sure you run +mball before any WWW and FTP logfiles are rotated, else you might miss +some downloads. +

 

+ +

Environment.

+

+In order to run mball you need to set the global variable +$MBSE_ROOT. This variable must point to the root of the bbs +directory structure. The main configuration file config.data +must be present in the ~/etc directory. +

 

+ +

Commands.

+

+mball list - Create allfiles.txt and newfiles.txt files. +

 

+ +

Options.

+

+mball [command] -quiet - Quiet mode, supress screen output.
+mball list -zip - Create zipped listings as well. +

  + +

Setup.

+

+In mbsetup menu 1.13 you need to set the days to include in newfiles listings and the maximum security level. +Also define valid paths to logfiles that are created by your web and ftp server. +

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbcico.html b/html/programs/mbcico.html new file mode 100644 index 00000000..2c532b94 --- /dev/null +++ b/html/programs/mbcico.html @@ -0,0 +1,295 @@ + + + + + + + + + + + +MBSE BBS Programs - mbcico - The Fidonet mailer. + + + +
+
Last update 19-Jun-2005
+

mbcico - The Fidonet mailer.

+ +This is work in progress.... +

+ +

Synopsis.

+

+-a<inetaddr> -l<ttydevice> <node> ...
+-n<phone>     forced phone number
+-l<ttydevice> forced tty device
+-t<tcpmode>   telnet TCP/IP mode, must be one of ifc|itn|ibn, forces TCP/IP
+-a<inetaddr>  supply internet hostname if not in nodelist
+ <node>        should be in domain form, e.g. f11.n22.z3
+-h            show this help message
+
+ or: mbcico tsync|yoohoo|**EMSI_INQC816|-t ibn|-t ifc|-t itn (this is answer mode) +

 

+ +

Description.

+

+mbcico stands for MBse "Internet - Fidonet Copy In /Copy Out", +this is a FidoNet(r) compatible transport agent. It is based on +ifcico written by Eugene G. Crosser, <crosser@average.org>, +2:5020/230@FidoNet. I changed the name of the program to make the difference +between ifcico and mbcico. Nowadays it is +quite different then ifcico. +

+Currently it supports FTS-0001, YooHoo/2U2 and EMSI handshake protocols, +Xmodem, Telink, Modem7, Hydra with zlib compression extension (FSP-xxxx), +SEAlink with and without overdrive and crash recovery, +Bark file and update requests, WaZoo protocols: DietIFNA, +plain Zmodem (aka ZedZip, EMSI flag "ZMO") and ZedZap, WaZoo file and +update requests (nodelist flag should be XA). WaZoo file and update requests +do also work with FTS-0001 sessions, this is supported by several well known DOS +mailers also. +Password protected requests and update requests are implemented. +

+There is also a special protocol optimized to use over TCP/IP connections, +contributed by Stanislav Voronyi <stas@uanet.kharkov.ua>, it is +identified by EMSI proto code TCP (not registered) and nodelist flag IFC. +The default port is 60179. A telnet variant is installed at port 60177, the +nodelist flag is ITN:60177. The port number is needed because the default port +in the nodelist is port 23. +

+There is also a Binkp/1.1 implementation, this is a +bi-directional TCP/IP protocol. +This protocol is prefferred over the IFC protocol because it is +more efficient. Nodelist flag is IBN, the default port is 24554, and the +nodelist request flag is XX. This binkp implementation uses zlib packet +compression opt PLZ (FSP-1032) to increase the transfer speed and to lower +the network bandwith usage. There is also support for the stream compression +modes GZ and BZ2 (compatible with binkd). +

+Outbound directory structure is BinkleyTerm compatible, with domains and +point subdirectories (full 5d). There are separate "protected" and +"unprotected" inbound directories for the incoming sessions with the nodes +that are in your setup. Files received during outbound sessions are always +stored in the "protected" inbound. +

+"Magic" file request processors are executable files placed in the "magic" +directory. If a request is made for a file with matching name, the +executable from the "magic" directory is run, and its stdout output is mailed +to the requestor. Full requestor's address, in the form of "John Smith of +1:234/56/7" is passed to the executable in the command line. An example of +such file is on my system, the filename in the magic directory is STATUS. +

+echo "    Hello $1 $2,"
+echo ""
+echo "               Status report for MBSE BBS Development"
+echo "               --------------------------------------"
+echo ""
+echo "Date  : `date`"
+echo "System: `uname -mrs`"
+echo "Uptime: `uptime`"
+echo ""
+echo "`df -T`"
+echo ""
+echo "`free`"
+echo ""
+echo "Gtx, Michiel Broek"
+
+If you file request STATUS from my system you will get something like: +
+    Hello John Doe,
+
+                   Status report for MBSE BBS Development
+		   --------------------------------------
+
+Date  : Sat Nov  8 17:29:07 CET 2003
+System: Linux 2.4.20 i586
+Uptime:  17:29:07 up 88 days, 20:02,  1 user, load average: 0.00, 0.00, 0.00
+
+Filesystem    Type   1k-blocks      Used Available Use% Mounted on
+/dev/hda2     ext3     5921096   3405184   2210276  61% /
+/dev/hdb1     ext3     6198404   5133056    750476  88% /opt
+
+             total       used       free     shared    buffers     cached
+Mem:         94280      91360       2920          0      13152      46276
+-/+ buffers/cache:      31932      62348
+Swap:       136512      32380     104132
+
+Gtx, Michiel Broek
+
+ +Non-executable +files in the magic directory contain the full names to magic filenames. The +magic NODELIST can thus point to the full path and filename of your latest +nodelist. These magic names are automatic maintained by the mbfido +program when the magic name is set in the .tic file that you receive. +

+To run mbcico in master mode, you need to make dialout +devices read/writeable for mbcico, and do the same for +the directory where your uucp locks are created (usually /var/locks). +

 

+ +

Answer Mode.

+

+To make mbcico work in answer mode, you need +mgetty written by Gert Doering. mbcico must be +started with one of the following parameters: +

+FTS-0001 call:       "/opt/mbse/bin/mbcico tsync"
+FTS-0006 call:       "/opt/mbse/bin/mbcico yoohoo"
+EMSI call:           "/opt/mbse/bin/mbcico **EMSI_....."
+

+In the latter case the received EMSI packet should be passed whitout trailing +CR). To make this work mgetty must be compiled with the +-DFIDO option. Other getty programs might work. +

+To answer TCP/IP calls the following lines should be added to /etc/inetd.conf: +

+binkd   stream  tcp     nowait  mbse    /opt/mbse/bin/mbcico    mbcico -t ibn
+fido    stream  tcp     nowait  mbse    /opt/mbse/bin/mbcico    mbcico -t ifc
+tfido   stream  tcp     nowait  mbse    /opt/mbse/bin/mbcico    mbcico -t itn	
+

+If your system uses xinetd the file /etc/xinetd.d/mbsebbs could be: +

+#:MBSE BBS services are defined here.
+
+service binkp
+{
+	socket_type     = stream
+	protocol        = tcp
+	wait            = no
+	user            = mbse
+	instances       = 10
+	server          = /opt/mbse/bin/mbcico
+	server_args     = -t ibn
+}
+
+service tfido
+{
+	socket_type     = stream
+	protocol        = tcp
+	wait            = no
+	user            = mbse
+	instances       = 10
+	server          = /opt/mbse/bin/mbcico
+	server_args     = -t itn
+}
+
+service fido
+{
+	socket_type     = stream
+	protocol        = tcp
+	wait            = no
+	user            = mbse
+	instances       = 10
+	server          = /opt/mbse/bin/mbcico
+	server_args     = -t ifc
+}
+

+In the file /etc/services the following lines must be present: +

+binkd           24554/tcp               # mbcico IBN mode
+fido            60179/tcp               # mbcico IFC mode
+tfido           60177/tcp               # mbcico ITN mode
+
+

 

+ + +

Calling Mode.

+

+You never need to call nodes with mbcico by hand, mbtask will +start mbcico with the right commandline.
+Note: you should not call nodes with mbcico directly, let +mbtask do the calling. +If you want to call a node make a poll command. +

 

+ +

Environment.

+

+In order to run the mbcico you need to set one global environment variable +$MBSE_ROOT +This variable must point to the root of the bbs directoy structure. +

 

+ +

Return Codes.

+

+

+0        - No errors
+1..32    - OS errors, SIGHUP, SIGKILL, etc.
+100      - Commandline error.
+101      - Configuration error.
+103      - Disk full.
+108      - File transfer error.
+111      - Node not in nodelist.
+112      - Node may not be called (Hold, Down, not ZMH).
+113      - Could not make connection.
+114      - Cannot open tty port.
+115      - Node is locked.
+116      - No IP address.
+117      - Unknown session type.
+118      - Not Zone Mail Hour.
+119      - Modem error.
+120      - Not port available.
+121      - Session error.
+122      - EMSI session error.
+123      - FTSC session error.
+124      - Wazoo session error.
+125      - YooHoo session error.
+126      - Outbound scan error.
+127      - Cannot poll.
+
+These codes are also stored in status files for nodes, with the extension +of ".sts". These are small datafiles containing three decimal numbers. +
    +
  1. Time retry code, this is the next call attempt time. This is an unsigned + long representing the number of seconds since the epoch. Before this time + the node may not be called. This is set after a failed call, a random time + in the near future is selected. +
  2. Retries, this is the number of consequtive call attempts made that returned + "call failed" or other errors. This field is zeroed when the call succeeds and + when a new "poll" is created. If the value is 30, the node won't be called + anymore. +
  3. Code, this is the return code of the last attempt. +
+

 

+ +

Configuration.

+

+The behaviour of mbcico can be configured with mbsetup, +section 1.14 If something doesn't do what you want, set the debug on for +that problem. This will produce huge logfiles, but also a lot of information. +Important flags are Device IO, EMSI debug, File forward, Locking, Outboundscan +and Session. +

 

+ +

Bugs.

+

+Incoming calls from McMail mailers, McMail is quite hasty +to establish an EMSI session, and times out in less than a second. So +if your system is heavy loaded, or not too fast, McMail cannot connect +with your system. This is a known problem with McMail 1.0 and older, +later versions are ok. +

 

+ +

Authors.

+

+

+Eugene G. Crosser <crosser@average.org>   Orginal ifcico.
+Stanislav Voronyi <stas@uanet.kharkov.ua> TCP/IP code.
+Martin Junius                             Rewrite of opentcp().
+Omen Technology Inc                       Zmodem protocol.
+Arjen G. Lentz, Joaquim H. Homrighausen   Hydra transfer protocol.
+Cristof Meerwald                          Implementation of Hydra in ifcico.
+P. Saratxaga                              Tty driver code, yoohoo extensions.
+Dima Maloff                               Binkp protocol.
+Michiel Broek                             Rewrite for MBSE BBS.
+
+

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbdiff.html b/html/programs/mbdiff.html new file mode 100644 index 00000000..20a71e17 --- /dev/null +++ b/html/programs/mbdiff.html @@ -0,0 +1,64 @@ + + + + + + + + + + + +MBSE BBS Programs - mbdiff - Nodelist difference file processor. + + + +
+
Last update 30-Jan-2001
+

mbdiff - Nodelist difference file processor.

+ +

Synopsis.

+

+mbdiff [nodelist] [nodediff] <options> +

 

+ +

Description.

+

+mbdiff applies a (compressed) nodediff file against the +nodelist of the week before to create a new nodelist. The result is a new +plain nodelist and a nodelist compressed with zip. +

 

+ +

Environmet.

+

+In order to run mbdiff you must set the global variable +$MBSE_ROOT. This variable must point to the root directory +of the bbs structure. The main configuration file config.data +must be present in the ~/etc directory. +

 

+ +

Commands.

+

+mbdiff [nodelist] [nodediff] The nodelist must be the full +path and filename without the dot and daynumber extension. The nodediff is +the full path and filename to the (compressed) nodediff file fitting on the +latest nodelist. It is adviced to make a seperate working directory where +you keep the nodelists. Don't do this in your normal nodelist directory. +When the operation is successfull, the new nodelist is in the working directory +and the old list is removed. A compressed version of the nodelist is also +placed in the working directory. From here you can hatch the new compressed +nodelist with the mbfido program. +

 

+ +

Options.

+

+-quiet - supress screen output, this switch is needed when +mbdiff runs on the background. +

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbfido.html b/html/programs/mbfido.html new file mode 100644 index 00000000..e32e47c2 --- /dev/null +++ b/html/programs/mbfido.html @@ -0,0 +1,277 @@ + + + + + + + + + + + +MBSE BBS Programs - mbfido - The Fidonet mail and files processor. + + + +
+
Last update 26-Aug-2005
+

mbfido, the fidonet mail and files processor.

+ +

Synopsis.

+

+mbfido [command(s)] <options> +

 

+ +

Description.

+

+mbfido +is the program to process fidonet mail and files. In order to run mbfido +you must first start mbtask, +this is the deamon which controls all bbs activities. To prevent that +mbfido will run more than once at the same time a lock +is placed in the protected inbound with the pid of the running +mbfido program. The gateway to and from internet is also +handled by mbfido. +

 

+ +

Specifications.

+

+The recognized mail packets are type 2+ following the FSC-0039 standard with +a fallback to the old stone age packets. +Can handle messages of maximum 429467295 bytes, or less if you have less +memory available, the practical limit is about 1 Meg. Note that most mailprocessors +are only guaranteed to work to maximum 16 KBytes. +Recent experiments in the LINUX echo show that this is still true, +although most tossers seem to process mail up to 32 KBytes. +

 

+ +

Tossing Mail.

+

+First make sure you have the necessary message areas in your setup. At least +you need the badmail and dupemail areas and a netmail area for each network +you participate in. If you don't create badmail and dupemail areas then +bad (unknown area etc) and dupes are lost and you cannot check the reason why. +If you don't create the netmail areas for each network, then netmail to your +system will dissapear. It is not possible to "retoss" the badmail yet after +you have created any missing echomail areas. +

+To prevent .pkt name collision the toss of incoming mail is done in parts. +The first run is to process all uncompressed mailpackets and add mail to the +outbound. Then each compressed ARCmail archive will be uncompressed and +processed and mail will be imported and forwarded as necessary. During all +these passes all filenames are sorted by date and time, the oldest files are +processed first. +

+The recognized mail packets are type 2+ following the FSC-0039 standard with +a fallback to the old stone age packets. The packets are checked for being +addressed to one of your own aka's and for a correct password. The +password check may be switched off in the nodes setup. After all the packet +header checks the messages will be extracted from the packet file. +

+When messages are extracted from the packets, the date format is checked for +Year2000 bugs from other tossers. Several checks are done by ideas of Tobias +Ernst of 2:2476/418. It is also possible to run the pktdate +utility before each packet will be processed. Whatever date format us used in +the original message, mbfido will always rewrite the date +field in the right FTS-0001 format. +

+If the message is a netmail the message is checked for DOMAIN, INTL, FMPT and +TOPT kludges so that full 4d or 5d addressing will be possible. Then a check +is done if this netmail is addressed to one of our aka's. If it's addressed to +"sysop" or "postmaster" the name is replaced with the sysop's name. If the +message is addressed to one of the names defined in the service setup, that +mail will be handled by the service manager, ie. given to areamgr, filemgr or +send further as email to your local system. +
+Then the message is checked if it is addressed to an existing bbs user, and if +so it will be imported into the netmail area of the main zone of the bbs. +If it's not addressed to a bbs user, the message will be readdressed to the +sysop. If the message is not for one of our aka's the message will be put in the +mailqueue for further routing. +

+If the message is a echomail message it will be checked for being a duplicate by +storing the CRC32 value of the AREA: line, message subject, origin line, +message date and msgid kludge and testing if that CRC32 value exists in the +echomail duplicate database. If there is no msgid in the message, the whole +message body will be include to complete the CRC32 dupe check. +Also the existance of the echomail area is checked and the node must be linked to that area. +If the message is not in a passthru area and is not a duplicate it +is finally imported in the message base. +After that is the message will be forwarded to downlinks +by adding the message to the mailqueue. +

 

+ +

Adding mail and files to the outbound.

+

+Adding mail and file to the outbound is done in two passes. The first pass is to put all +outgoing mail into the ~/var/queue/z.n.n.p directory, the last letters are +replaced by the digits of the nodenumber. +The extension can be qqq for packed mail, nnn for normal unpacked mail, hhh for +hold unpacked mail and ccc for crash unpacked mail. Adding mail and files to +this directory can allways be done, even if one of the nodes you are adding mail +for is having a mail session with your system. This is a safe operation.
+In the second pass, these temp files are really added to the outbound, but +only if the destination node is not locked, ie. there is no current mailsession +with that node. If there is a mail session going, these temp files will stay in +the temp directory and are added to the outbound in a later run of +mbfido. If adding the mail to the outbound succeeds +the temporary files and directory is removed. +

 

+ +

Alias file.

+

+If the file /opt/mbse/etc/aliases exists, mbfido will try to fetch ftn-style +aliases from there. +If "from" address of a message from FidoNet matches right side +of some entry in alias file, then the Reply-To: header is created +in the RFC message with the name part taken from the left side of the +sysalis entry and domain part taken from myfqdn (below). E.g., if a +fidonet message comes from "John Smith of 1:234/567.89@fidonet" and +there is an entry in the sysalias file: +

+"jsmith:      John.Smith@p89.f567.n234.z1.fidonet.org"
+
+and Domain name value is "mbse.nl", then the resulting message will +contain a line: "Reply-To: jsmith@mbse.nl". +

 

+ +

Commands.

+

+mbfido areas +This command will check all file and mail groups if areas files are defined and +if the setting Auto change is set to Yes. Then the areafile is read and +the areas in that file are compared with the defined areas. Missing areas are +created and areas not in the areafile are removed or blocked depending if there +are files or messages present in these areas. This is also a good command to +create large bulks of new areas on your system. + +

+mbfido mail <recipient> +This command is used by your MTA to deliver email addressed to for example +Michiel_Broek@f2802.n280.z2.fidonet.org + +

+mbmail <recipient> +This is the same as above. + +

+mbfido notify <nodes> +This command will send notify messages to all nodes in your setup which +have the notify option set to on. If you enter nodes as option you may use +wilcards, ie 2:*/* to send messages to all nodes in zone 2. If you specify +exactly one node, messages will be generated even if that node has the +notify function off. From cron you should not specify any nodes, this will +just send to all your links the information about their setup. Each node +will receive a status report for files and mail, and area list for all +file areas and mail areas to each aka a node has, and a flow report for +mail for each aka. +

+mbfido roll +This command will only do something if a new week or month has begun. +If this is true the statistic records in several databases are updated. +You should run this command each midnight from cron to be sure that this when it is +time to do so. This command is always executed before one of the scan, toss or tic commands so +if you don't do this in cron, it will still happen. +

+mbfido scan +Scan for new messages entered at the bbs or by other utilities. If the file +~/tmp/echomail.jam or ~/tmp/netmail.jam exists, +mbfido will only scan the messages in areas which are +pointed at in this file. This is a lot faster then a full mailscan. +If it is not present, all messagebases are scanned +to see if there is a new message. If you specify +-full on the commandline a full messagebase scan is forced. +It is wise to do this sometimes, on my bbs I run this once a day. +

+mbfido tag +The command will create tag- and areas files in the doc directory for each group of +mail and files. +

+mbfido test <node> +This is for testing of the mail routing. The node on the commandline must be in +the format f28.n280.z2 etc. The results are printed on the tty. If you have +debug logging on in menu 1.5.16 items 17 and 18, then all needed debug +information is written to the logfile. You can use this to debug your routing. +

+mbfido tic +Process incoming files accompanied with .tic control files. Several actions can +take place on the incoming file before they are imported in the BBS areas. +Options are rearchiving, replacing banners (with your add), check for DOS +viruses, running scripts for certain filename patterns, send these files to +other nodes etc. All options can be defined for each area. If as a result from +one of the actions there are new files hatched, for example after processing +a nodelist difference file which created a new nodelist, the .tic processing +will start again, until there is really nothing more to do. +

+mbfido toss +Toss incoming fidonet netmail and or echomail. By default mail in the protected +inbound directory will be processed, uncompressed .pkt files and compressed +arcmail bundles are recognized, filename case doesn't matter. +

+mbfido news Scan all defined newsgroups for new newsarticles. +New articles are fetched from the newsserver and stored in your messagebase and +send to your up- and downlinks. This is for use with an NNTP gateway. +

+mbfido uucp +This will read a standard a newsbatch from stdin and gate the articles +to Fidonet and the local message base. This is for use with an UUCP gateway, this +mode should be called by uuxqt. The newsbatch may be compressed or uncompressed or +a single news article. +

+mbnews +This is an alternative to mbfido uucp -quiet. +

 

+ +

Options.

+

+mbfido [command] -nocrc +Disable CRC checking of incoming TIC files. Only use this if you know what +you are doing. +

+mbfido scan -full +Force scanning of all message bases for new entered mail. You need this if +mail in entered with other editors then from mbse. Also, running it once a +day is adviced to catch any missed messages. +

+mbfido news -learn +Scan the newsserver for news articles, and update the news dupes database only. +Use this switch if you start using mbfido to gate news articles for the first time. +Articles will not be gated with this switch, mbfido will just learn which articles +already exist. Normally you only need to use this switch once. +

+mbfido [command] -nodupe +Disable checking for duplicate's. Normally you should not use this switch. +This switch doesn't work with the news command, only for echomail and tic files. +

+mbfido [command] -quiet +Quiet mode, all output to the current tty is supressed. Use this flag if +you toss mail from a script (started by cron) after mail is received. +

+mbfido toss -unsecure +Toss mail without checking if the echomail is for your own system en without +checking if the sending node is connected to your system. Nodes who are +excluded from a certain echo, can stil not enter messages in that echo. +

+mbfido [command] -unprotect +Toss from the unprotected inbound directory. The default is to toss from the +protected inbound directory. +

 

+ +

Environment.

+

+In order to run the bbs you need to set one global environment variable +$MBSE_ROOT +This variable must point to the root of the bbs directoy structure. +

 

+ +

Bugs.

+

+There are still bugs, this program is under development. +

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbfile.html b/html/programs/mbfile.html new file mode 100644 index 00000000..4332a848 --- /dev/null +++ b/html/programs/mbfile.html @@ -0,0 +1,192 @@ + + + + +MBSE BBS Programs - mbfile - File database maintenance program. + + + + + + + + + + +
+
Last update 08-Jun-2007
+

mbfile - File database maintenance program.

+ +

Synopsys.

+mbfile [commands] <options> +

 

+ +

Description.

+

+mbfile +is the filedatabase maintenance program for mbsebbs. In order to run mbfile you +must have started mbsed, +this is the deamon which controls all bbs activities. +

+The main purpose of mbfile +to do automatic maintenance on the downloadable files on the bbs, such as +removing or moving old files, checking the database and packing the database. +The best way to do the maintenance is to run mbfile +from the crontab. example: +

+30 05 * * * export MBSE_ROOT=/opt/mbse; /opt/mbse/bin/mbfile kill pack index -quiet
+
+Other functions in mbfile are meant to do manual maintenance such as +adding, deleting or moving files. +

 

+ +

Environment.

+

+In order to run the bbs you need to set one global environment variable +$MBSE_ROOT +This variable must point to the root of the bbs directoy structure. The +main configuration file config.data +must exist in the subdirectory ~/etc. +

 

+ +

Commands.

+

+mbfile adopt <area> <file> "[description]" +Adopt a file to the filebase. The description is optional, but if present it +should be enclosed in quotes. The optional description may be at most 255 characters. +Default mbfile will try to use the FILE_ID.DIZ if this is present. The file to +adopt needs to be in your current directory and will be copied to the new area. +If you have virus scanners defined, the file will be checked for virusses. + +

+mbfile check [area] +Check the database integrity. All files in the filedatabase must exist on +disk and all files on disk must exist in the filedatabase. There are some +exceptions, files.bbs, files.bak, 00index, index*.html, header, readme and +files that start with a dot. +Of all files the date and time is checked, the size and the crc +value of the file. If there is something wrong, the error is corrected or the +file is removed. If the area is a CD-rom area, the check that files on disk +must exist in the filedatabase is skipped. +If no area number is given, all areas are checked. +

+ +mbfile delete <area> "<filemask>" +Mark file(s) in an area for later deletion. You can use wildcards, and if you do +surround them with quotes to prevent shell expansion. +The file is not removed until you run mbfile pack. +

+ +mbfile import <area> +Import files to the given area using files.bbs descriptions. There are two +possibilities, import from CD-rom or just from a temporary directory. +

    +
  • Import from a temporary directory: Put the files to import there including the +files.bbs file. +
  • Import from CD-rom: Go into the directory on the CD +where the files are. If the files.bbs is not in the same directory, +you must enter the full filename and path where the files.bbs is with +mbsetup 8.4.area.6. +
+To start the import, type mbfile import area where area is the +number of the destination filearea. +The files are not checked for FILE_ID.DIZ inside the +archives. If you have virus scanners defined, the files are checked for +virusses before they are added the the bbs. If you don't want these fresh files +to be announced, add the -announce option on the commandline. This +may be a good idea if you migrate from another bbs system. +

+ +mbfile index +Create fast filerequest index for the mbcico filerequest +processor. In each directory with the downloadable files is also a +files.bbs file written in msdos cr/lf format. This includes a +download counter. +Also, if defined, in each available download area for ftp/http, 00index +and index.html files are +created, starting at the ftp pub directory. If the area contains gif or jpg +images, thumbnails are created using the convert program if you have that +installed. The thumbnails have the same filenames as the original images, only +they start with a dot. The convert command is defined with mbsetup menu +1.19.8, if you don't have it or don't want thumbnails, make that entry empty. +The index command only rebuilds area index files (files.bbs, index.html and +00index) when there was a change in the area. +

+ +mbfile kill +Mark files to delete or move files in areas that have the download age +set or the filedate age set. A setting of 0 is ignored. +Areas on CD-rom are always skipped. +If the Move to Area option is set the files are moved to the given area. The +upload date and download date are reset to the current date and time. +So if you set in the destination area aging of 14 days, files will stay +there for 14 days after the move. This is good for automatic "last chance" areas. +

+ +mbfile list [area] +List all defined file areas, the number of files, the total size of the files +and the primary group. If and area is given on the commandline, the files in +that area are listed. +

+ +mbfile move <from> <to> <file> +This command will move a file from one area to another. No actions on the file +are performed. +

+ +mbfile pack +This command will actualy remove the records of files that are marked for +deletion. If the file is still on disk, it will be removed also. So when +you delete files with mbsetup or with mbfile, they are still in your database and on disk +until you run mbfile pack. +

+ +mbfile rearc <area> "<filemask>"; +Re-archive file(s) in an file area to the archiver that must be set in the +file area setup. +

+ +mbfile sort <area> +Sort the files in area on the long filenames. The sort is case insensitive. When +the sort is completed, the command mbfile index will automatic +run to rebuild all indexes. +

+ +mbfile toberep +Shows which files are to be reported. This lists only the files that are +received during .tic processing, new uploaded files are not displayed. This list +is automatic removed after newfiles are announced. +See also mbtoberep. +

+ +mbfile undelete <area> "<filemask>" +Mark a file that is marked for deletion to be available again, ie. undo the deletion +mark. You can use wildcards, and if you do +surround them with quotes to prevent shell expansion. +

 

+ +

Options.

+

+mbfile [command] -quiet +Quiet mode, no screen output. Use this switch if you run mbfile from the crontab. +

+mbfile [command] -announce +Announce mode, use this switch with the adopt and import commands to prevent +that the added file(s) will be announced. This can be usefull if you add lots of +files that you don't want to announce these as new files. +

+mbfile [command] -force +With the adopt, import and move commands files that already exist in the +destination area are not overwritten. With this switch you can force to +overwrite the existing file. +

+mbfile [command] -virus +Supress virus scanning of files during adopt or import. Use with care. +

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbindex.html b/html/programs/mbindex.html new file mode 100644 index 00000000..b54c5b6f --- /dev/null +++ b/html/programs/mbindex.html @@ -0,0 +1,68 @@ + + + + + + + + + + + +MBSE BBS Programs - mbindex - Nodelist Index Compiler. + + + +
+
Last update 30-Jan-2001
+

mbindex - Nodelist Index Compiler.

+ +

Synopsis.

+

+mbindex <options> +

 

+ + +

Description.

+

+mbindex is the nodelist index compiler. It will create +an index file containing the sorted fidonet addresses as index file to the +raw nodelists in the defined nodelist directory. Several other programs +use this index file for fast retreival of data from the nodelists. Compiling +new nodelist indexes can always be done, while compiling the result +is stored in temporary index files and only after successfull compilation the +original indexes are renamed and the temporary files get the normal names. +The renamed (old) indexes stay on disk including the previous version of the +old raw nodelist. They stay there in case some program had the nodelist or +index still open. So in the nodelist directory there are current nodelists, +previous +nodelists, current indexes and previous indexes, and during compiling the +temporary indexes. There is no need to manually remove (and not wise to do so) +files from the nodelist directory. +

+The nodelists in the nodelist directory are the normal uncompressed nodelists +in MS-DOS format (with CR/LF). The filename extensions must be two or 3 digits. +So if you have a private pointlist named bestbbs.pts you +will have to rename that to bestbbs.999 to make it work. +

 

+ +

Environment.

+

+In order to run mbindex you must set the global variable +$MBSE_ROOT. This variable must point to the root directory +of the bbs structure. The main configuration file config.data +must be present in the ~/etc directory. +

 

+ +

Options.

+

+mbindex -quiet Quiet mode, no screen output. Use the switch +if you run mbindex from a shellscript or from the crontab. +

 

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mblang.html b/html/programs/mblang.html new file mode 100644 index 00000000..805cdf53 --- /dev/null +++ b/html/programs/mblang.html @@ -0,0 +1,38 @@ + + + + + + + + + + + +MBSE BBS Programs - mblang - Language Data Compiler. + + + +
+
Last update 30-Jan-2001
+

mblang - Language Data Compiler

+ +

Synopsis.

+

+mblang [language data file] [language source text] +

 

+ +

Description.

+

+mblang compiles the source textfile to language datafile +which is used by the mbsebbs program. You only need to +use this program if you install a new language file. When you build the +complete mbse bbs package, this command is run automatic for you. +

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mblogin.html b/html/programs/mblogin.html new file mode 100644 index 00000000..4885020a --- /dev/null +++ b/html/programs/mblogin.html @@ -0,0 +1,122 @@ + + + + + + + + + + + +MBSE BBS Programs - mblogin - Unix login replacement for MBSE BBS. + + + +
+
Last update 25-Aug-2007
+

mblogin - Unix login replacement for MBSE BBS.

+ +

Synopsis.

+

+mblogin [-p] [-h hostname] [user] +

 

+ +

Description.

+

+mblogin replaces the standard Unix login program for MBSE BBS. +You can use this program from mgetty for modem/ISDN access, +or from inetd to allow telnet access. +This program logs in the systems syslog facility because the normal login +program does this too. It uses the file /opt/mbse/etc/login.defs +for the behaviour you prefere. All options in this file are well commented. It uses +the bbs user database to see who are allowed to login. Users can use their +Fidonet name, Unix name or Handle. If the name is found in the userbase, the +name is replaced with the real Unix name to do the password check and to start +the mbsebbs program. If the user is not found in the user base, +the user is asked if he wants to register as a new user. This behaviour can be +turned off. If the user uses the name bbs he will start the +mbnewusr program directly. All other users are not allowed to +login, not even root. If you change it in the file +/opt/mbse/etc/login.defs you may allow user mbse +to login. I advice against it, you should use ssh if you want +remote access to do maintenance. +

 

+ +

How to use from inetd.

+

+If your system is connected to the internet you may want to let users login +using telnet. The changes you need to make are different for each operating +system mbse supports. The right lines for your distribution should already +be present, but they are not set active, in other words, you still need to +make changes to allow telnet login to work. +I will describe how to use it from inetd. +When you make changes to your system to +change the telnet login, make sure you are already logged into your system as root +from another terminal. If you make a mistake and can't login anymore you will be +glad that you are still logged in on another terminal. Here are the tested +setups: +

    +
  • GNU/Linux: edit the telnet line in /etc/inetd.conf:
    + telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -L /opt/mbse/bin/mblogin
    + After changing this file do a kill -HUP pid where pid is the pid of the + inetd process. +
  • FreeBSD: edit the telnet line in /etc/inetd.conf:
    + telnet stream tcp nowait root /usr/libexec/telnetd telnetd -p /opt/mbse/bin/mblogin
    + After changing this file do a kill -HUP pid where pid is the pid of the + inetd process. +
  • NetBSD: append a line in /etc/gettytab just below the line with the default + entry:
    + mbsebbs:cd:ck:np:lo=/opt/mbse/bin/mblogin:sp#38400:
    + The speed entry 38400 doesn't seem to be important. + Then edit the telnet line in /etc/inetd.conf:
    + telnetd stream tcp nowait root /usr/libexec/telnetd telnetd -g mbsebbs
    + After changing this file do a kill -HUP pid where pid is the pid of the + inetd process. +
+Now you can test it with telnet localhost or from another machine +with telnet your.machine.com. Check if you can still do other +logins such as ssh, rlogin and login on local consoles. +

 

+ +

How to use from xinetd.

+

+This is how to use xinetd, Read the section above also. +Here is a tested setups: +This has to be done as root. You have to create a service under /etc/xinetd.d +named telnet if you dont have it yet installed, if it is already installed just +modify the server_args line to match this: +

+server_args = -L /opt/mbse/bin/mblogin
+
+Your /etc/xinetd.d/telnet file should look something like this: +
+service telnet
+{
+        flags = REUSE
+        log_on_failure += USERID
+        socket_type = stream
+        user = root
+        server = /usr/sbin/telnetd
+        server_args = -L /opt/mbse/bin/mblogin
+        wait = no
+}
+
+This will replace the standard login program on xinetd systems to the mblogin +program, so that next time someone logs into your bbs they will be presented the +issue file on /opt/mbse/etc file and the login prompt for the BBS instead of the +standard login prompt. +

 

+ + +

How to use from mgetty

+

+This is described with the setup for mgetty. +

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbmon.html b/html/programs/mbmon.html new file mode 100644 index 00000000..e7bee5f8 --- /dev/null +++ b/html/programs/mbmon.html @@ -0,0 +1,119 @@ + + + + + + + + + + + +MBSE BBS Programs - mbmon - MBSE BBS Monitor. + + + +
+
Last update 28-Aug-2003
+

mbmon - MBSE BBS Monitor

+ +

Sysnopsis.

+

+mbmon +

 

+ +

Description.

+

+mbmon is the monitor program so that you can see what is +happening on your bbs. It can show all processes and actions of all programs, +show system statitistics, disk useage, and the last callers list. +mbmon must run on the same system where the bbs is. When +started it will also report that the sysop is present on the system for chat so +that users of your bbs can page you for a chat. If a user pages you, this will +be shown in every screen of mbmon and a beep will sound every +few seconds.
+ + + + + +
+ +A user is paging
+
Main menu, a user is paging.
+
+ +chat with a user
+
Chat with a user.
+
+ +

 

+ +

Environment.

+

+In order to run mbmon you must set the global variable +$MBSE_ROOT. This variable must point to the root directory +of the bbs structure. +

 

+ +

Menu 1.

+

+This screen shows the running bbs programs and what they are doing. +

 

+ +

Menu 2.

+

+This screen displays the actual mbtask server status and some internal +variables. The left side of the screen are more statistics and counters, the +right side displays the actual bbs open status, Zone Mail Hour status, if +Internet is alive, if internet is needed, if mbtask is internal running and the +system load average. Consult this screen if you think mbse doesn't run. +

 

+ +

Menu 3.

+

+This screen displays the filesystem usage. Removeable filesystems such as CD's are not displayed, +only filesystems that the bbs could use. +

 

+ +

Menu 4.

+

+This screen shows some bbs information. +

 

+ +

Menu 5.

+

+This menus shows the lastcallers of the bbs. It shows the username, location, +userlevel, the device they logged in from, the starttime, the duration, the +number of calls, the linespeed and the actions they have done. +The action fields mean: +Hidden, Download, Upload, Read messages, Post +messages, Chat, Offline reader, External door. +

 

+ +

Menu 6.

+

+Chat with any user. Using this menu you enter the chatserver and you can chat in +any channel just as the users of your bbs can do. The chatserver works just like +an IRC server. Type /HELP for help. +

 

+ +

Menu 7.

+

+Respond to a sysop page. This is actually the same as chat with any user, the +only difference is that you will join channel #sysop immediatly. If the user is +not yet connected after his page, he will also be connected to the channel as +soon as possible. +

 

+ +

Menu 8.

+

+This shows the software information. +

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbmsg.html b/html/programs/mbmsg.html new file mode 100644 index 00000000..682bdeff --- /dev/null +++ b/html/programs/mbmsg.html @@ -0,0 +1,93 @@ + + + + + + + + + + + +MBSE BBS Programs - mbmsg - Message Base Utility. + + + +
+
Last update 30-Jan-2001
+

mbmsg - Message Base Utility

+ +

Sysnopsis.

+

+mbmsg [commands] <options> +

 

+ +

Description.

+

+mbmsg +is the message base utility program for mbsebbs. In order to run mbmsg you +must have started mbsed, +this is the deamon which controls all bbs activities. +

+The main purpose of mbmsg +is to link messages after tossing mail, and to maintain the size of the message +bases and the age of the messages. The best way to do the maintenance is to +run mbmsg +from the crontab. example: +

+30 05 * * * export MBSE_ROOT=/bbs; /bbs/bin/mbmsg kill pack link -quiet
+
+Another purpose is to automatic post messages in message areas. Echomail and +netmail is possible. +

 

+ +

Environment.

+

+In order to run mbmsg you must set the global variable +$MBSE_ROOT. This variable must point to the root directory +of the bbs structure. The main configuration file config.data +must be present in the ~/etc directory. +

 

+ +

Commands.

+

+mbmsg link Link all messages by subject ignoring +Re: in the subject lines. You should run this after tossing or scanning mail. +

+mbmsg kill Kill messages in areas that have the +age set or the maximum messages set. +A setting of 0 is ignored. The messages are not removed from the message base, +they are only marked as deleted. +

+mbmsg pack This command actualy removes the +messages who have the deleted flag set. +The lastread pointers are updated and the messages renumbered. After this +command there is no way you can recover your messages, except from backups. +

+mbmsg post <to> <#> <subj> <file> <flavor> + This command posts a message in numbered area. If a field +consists of more then one word it must be surounded with quotes. +The to field can be "Michiel Broek" for a full name or +"Michiel_Broek@f16.n2801.z2.fidonet" for netmail addressing. Look out: +you need underscore between the firstname and lastname, no spaces. +Flavor can be one or more of the characters "c", "i", "h" or "p" to set the Crash, +Immediate, Hold or Private flags. +If no flavor is needed, use the - (minus sign) as a placeholder. +

 

+ +

Options.

+

+mbmsg [command] -area <#> +Process only one area <#> number. +

+mbmsg [command] -quiet Quiet mode, +no screen output. Use this switch if you run mbmsg +from the crontab. +

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbnntp.html b/html/programs/mbnntp.html new file mode 100644 index 00000000..b46648bb --- /dev/null +++ b/html/programs/mbnntp.html @@ -0,0 +1,68 @@ + + + + + + + + + + + +MBSE BBS Programs - mbnntp - News server. + + + +
+
Last update 26-Aug-2005
+

mbnntp - News server

+ +

Synopsis.

+

+mbnntp You should not run this from the +commandline, instead it should be run by inetd or xinetd. +

 

+ +

Description.

+

+mbnntp is a RFC977 and RFC2980 compatible news server. +The purpose is to make echomail available to newsreader clients so that bbs +users can use their favourite newsreader to participate in echomail. It will +not make your newsgroups available if you have any, the bbs user can get these +directly from the internet. The bbs echomail areas are only made available if +they have a valid newsgroup name set in the area setup. If this is not alread +set, invent your own newsgroup name. For example the WWB echomail area MBSE +could be set as fido.wwb.mbse, but you can use anything as long as it doesn't +conflict with real newsgroups. +

+To use the server, the user must login in the +news server with his bbs unix name and password, thus the user must exist on the +bbs. The access to the areas is the same as if the user would be logged into the +bbs. +

 

+ +

Installation.

+

+If installed from inetd add the following line to +/etc/inetd.conf: +

+nntp    stream  tcp     nowait  mbse    /opt/mbse/bin/mbnntp    mbnntp
+
+

 

+ +

Building.

+

+If you did run ./configure --enable-newsgate when you compiled the +mbse package, mbnntp will be build as a not working program. This is +intended to prevent loops between real news and echomail. With normal builds +without --enable-newsgate (recommended) mbnntp will function +as newsserver. +

+ + +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbout.html b/html/programs/mbout.html new file mode 100644 index 00000000..884fcdb1 --- /dev/null +++ b/html/programs/mbout.html @@ -0,0 +1,110 @@ + + + + + + + + + + + +MBSE BBS Programs - mbout - The Outbound Manager. + + + +
+
Last update 17-Mar-2001
+

mbout - The Outbound Manager

+ +

Synopsis.

+

+mbout [command] <params> <options> +

 

+ +

Description.

+

+mbout is the outbound manager for MBSE BBS. It can ask +information from the nodelists, create and remove polls, request and send files and +display the outbound status. Most of the tasks such as create and remove +polls should be done from the crontab. +

 

+ +

Environment.

+

+In order to run mbout you must set the global variable +$MBSE_ROOT. This variable must point to the root directory +of the bbs structure. The main configuration file config.data +must be present in the ~/etc directory. +

 

+ +

Commands.

+

+mbout att <node> <flavor> <file> will attach +the specified file to the specified node. The node should be in the format +f2802.n280.z2, flavor should be crash, immediate, normal or hold. Only the first +letter of the flavor parameter is needed. +If the node is not in the nodelist, the status is Down or Hold, then this command fails. +To non-CM nodes you mus use the Immediate flavor if you want to send the file direct. +The flavors Hold and Normal are still allowed. The file must be in the directory range +from where file attaches are allowed. +

+mbout poll [node..node] creates poll requests in the outbound +for one or more nodes. The node should be in the format f2802.n280.z2. The semafore +scanout is created so that the mailer will start calling. +The mailer will handle the poll request as if it should deliver immediate mail, +so the node will be called as long as the poll request exists, even to nodes which are not CM. +The error counter for the node to poll will be reset to zero, so a node that was +previous marked undialable will be called again. +If a call to a node is successfull, the poll file will be removed by mbcico. +If a node is not in the nodelist or has the status Down or Hold, no poll will be created for that node. +

+mbout stop [node..node] removes poll requests that are +leftover when polling nodes didn't succeed. There is no check if the node is +in the nodelist or has the status Down or Hold, the poll is always removed. +

+mbout req <node> <file> [file..file] creates +filerequests to a node. One or more filenames may be given including wildcards. +It is not possible to do update or password protected uploads yet. If there +is already a requestlist for that node, the new requests will be added. This +command does not call a node, you need to create a poll request to make the +actual call. This is also practical if you want some files from your uplink, +just make the requests and the actual request is send when your normal +scheduled poll to your uplink is processed. +

+mbout reset [node..node] resets the nodes "try" +counter to zero. So if a node is undiable, the counter is 30 or more, then by +resetting this counter that node will be called again. The outbound is rescanned +after this command so that calling will start immediatly. +

+mbout stat shows the status of the mailer outbound. +This status is also written to the logfile. +

+mbout node <node> will show the nodelist information for +a certain node. +

 

+ +

Options.

+

+mbout [commands] -quiet will suppress screen output. This is +usefull if you run mbout from the crontab or from background +scripts. +

 

+ +

Examples.

+

+This is an example of crontab entries that writes the outbound status to the +logfile and creates and stops polling of 2 nodes.
+

+00 00 * * * export MBSE_ROOT=/opt/mbse; $MBSE_ROOT/bin/mbout stat -quiet
+00 01 * * * export MBSE_ROOT=/opt/mbse; $MBSE_ROOT/bin/mbout poll f98.n100.z92 f0.n100.z92 -quiet
+00 02 * * * export MBSE_ROOT=/opt/mbse; $MBSE_ROOT/bin/mbout stop f98.n100.z92 f0.n100.z92 -quiet
+
+

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbpasswd.html b/html/programs/mbpasswd.html new file mode 100644 index 00000000..74d85bdd --- /dev/null +++ b/html/programs/mbpasswd.html @@ -0,0 +1,55 @@ + + + + + + + + + + + +MBSE BBS Programs - mbuseradd - The useradd wrapper. + + + +
+
Last update 27-Aug-2005
+

mbpasswd - The password wrapper.

+ +

Description.

+

+mbpasswd is the wrapper for the passwd program +is present on all GNU/Linux systems. To use passwd to change the password of +another user is only allowed by root. The mbpasswd program overcomes this limitation. +The wrapper mbpasswd is run from the bbs by user mbse when a new +user is being registered to set his password. It can also be started from the +bbs when an existing user changes his password. If you as sysop use +mbsetup to change a users password it will be used too. +His password under Unix is then always the same as his password in the bbs program. +This is necessary for the user to be able to get his email using the pop3 protocol.

+You never need to run mbpasswd by hand, in fact it is protected so that +it can only be started by the bbs or mbsetup. +

 

+ +

Environment.

+

+mbpasswd must be installed setuid root and setgid root, ls -la looks like this:
+

+-rws--s--x   1 root     root         6644 Jun 26 21:23 /opt/mbse/bin/mbpasswd*
+
+

 

+ +

Commands.

+

+Not mentioned here because mbpasswd is only called by other programs, +running manually is not supported. +

+ + +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbsebbs.html b/html/programs/mbsebbs.html new file mode 100644 index 00000000..5fe2d88b --- /dev/null +++ b/html/programs/mbsebbs.html @@ -0,0 +1,147 @@ + + + + + + + + + + + +MBSE BBS Programs - mbsebbs - The main BBS program. + + + +
+
Last update 03-Sep-2005
+

mbsebbs - The main BBS program

+ +

Synopsis.

+

+mbsebbs +

 

+ +

Description.

+

+mbsebbs is the main bbs program for the users. +To be able to use the bbs, the bbs mustbe set open with mbstat open +or users may not login. This is normally done at system boot. +Also Zone Mail Hour is honored if the user logs in +on a tty that has the honor ZMH flag set to true. If it +is ZMH and the ZMH flag is true, the user will be kicked out of the bbs. You +should only set this flag on the modem lines where you need to be available +for ZMH if your "Fidonet" network requires that. +

+The first visible action is to show the logo.ans file. Because it is not +known who is trying to login, you only need to place this file in the +default language directory. +

+The next check is to see if the user is allowed to login on the tty he +currently is on. +If this tty is not available or is not in your setup, the user is kicked +out. If he is allowed to login, a message is shown at which port he is on, +unless you have turned this feature off in the setup. +

+If the user login is successfull, his favourite language will be loaded. +Then it is checked if the user is the Sysop, if so, the Sysop flag is set. +If the users Date of Birth is invalid, he is forced to enter the right +Date of Birth. +The next check is to see if the user has passed the expiry date, this is a +usefull feature for systems with donating users. +Finally the access limits are set for the user and time remaining for today and +download limits are set. +

+After successfull login the user can be presented with a bunch of advertising +screens. I will only name the screens without filename extension, as these +screens are searched for in the following order;
+

    +
  1. filename.ans in the users favourite language directory. +
  2. filename.ans in the default language directory. +
  3. filename.asc in the users favourite language directory. +
  4. filename.asc in the default language directory. +
  5. If nothing is found, nothing is displayed. +
+Here is the list of displayed screens: +
    +
  1. mainlogo. Here you can put a logo or something. +
  2. welcome. This screen can contain information about the session +the user has, his download limits, time left etc. +
  3. welcome1 is shown if the user has show bulletins set to true. +
  4. welcome2 is shown if the user has show bulletins set to true. +
  5. welcome3 is shown if the user has show bulletins set to true. +
  6. welcome4 is shown if the user has show bulletins set to true. +
  7. welcome5 is shown if the user has show bulletins set to true. +
  8. welcome6 is shown if the user has show bulletins set to true. +
  9. welcome7 is shown if the user has show bulletins set to true. +
  10. welcome8 is shown if the user has show bulletins set to true. +
  11. welcome9 is shown if the user has show bulletins set to true. +
  12. birthday is shown if the user logs in at his birthday and if he +has show bullentins set to true. +
  13. dd-mm is shown if dd is the date of today and +mm is the current month and if the user has show bulletins +set to true. +
  14. sec20 is shown if the user has the security level in the +filename, level 20 in this example. Als the display bulletins must be set to +true. +
  15. news is shown if the user has the display bulletins set to +true. +
  16. onceonly is shown only if the user has never seen this screen, +the test is to compare the users last login date against the date of this file. +
+

+After all these screens the users Offline Reader areas are checked to see if +you as sysop didn't change the message areas. If you made changes, the users +setup is adjusted and he will be notified. This means he sees a list +with deleted areas and new areas. +

+Next if the user has newmail scan set to true all message bases are checked to +see if the user has new mail. This includes a check to see if he has Unix mail. +If there is Unix mail, those mails are retrieved from the POP3 server and stored +in his private mailbox. +If there is new mail for the user, the user sees a list of areas with the messages +in it and he is offered to read and reply these messages. +

+Then if the user has show newfiles set to true and he is not a new bbs user +he will see a list of new files you have on your bbs. During this display +he can tag files for later download. +

+The final setup is to set the users "do not disturb" flag and then the menu +system is started. The menu system will run forever, until the user chooses +to logoff, the connection is lost or his daily timelimit is reached. For the +possibilities and setup of the menus see +MBSE BBS Menu System +

 

+ +

Environment.

+

+In order to run mbsebbs you must set the global variable +$MBSE_ROOT. This variable must point to the root directory +of the bbs structure. The main configuration file config.data +must be present in the ~/etc directory. +

+If the environment variable CONNECT is present, a log entry +will be made with the connect speed. +

+If the environment variable CALLER_ID is present, a log entry +will be made with the caller id. +

+The environment variable LOGNAME must contain the unix +username. This is set by the mblogin program. +

+If the environment variable REMOTEHOST is present, a log entry +will be made with the name or IP address of the remote host. +

+If the environment variable TERM is present, a log entry +will be made with the terminal type of the remote user. +

+ +

 

+ + +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbseq.html b/html/programs/mbseq.html new file mode 100644 index 00000000..3e645d6a --- /dev/null +++ b/html/programs/mbseq.html @@ -0,0 +1,49 @@ + + + + + + + + + + + +MBSE BBS Programs - mbseq - Sequence number creator. + + + +
+
Last update 31-Jan-2001
+

mbseq - Sequence number creator

+ +

Synopsis.

+

+mbseq +

 

+ +

Description.

+

+mbseq writes a eight character hexadecimal unique sequence +number to the stdout. This number is received from mbsed +which keeps track of the generated sequence numbers. This written number can +be used in shell scripts to create unique filenames for Fidonet .pkt files, +for example: +

+ +cp temp.pkt `mbseq`.pkt + +

 

+ +

Bugs.

+

+Nah, it's only 50 lines code, what could go wrong? +

+ + +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbsetup.html b/html/programs/mbsetup.html new file mode 100644 index 00000000..da5181af --- /dev/null +++ b/html/programs/mbsetup.html @@ -0,0 +1,62 @@ + + + + + + + + + + + +MBSE BBS Programs - mbsetup - The Setup Program. + + + +
+
Last update 05-May-2002
+

mbsetup - The Setup Program

+ +

Synopsis.

+

+mbsetup [init] +

 

+ +

Description.

+

+mbsetup is the setup program for MBSE BBS. It should be run +only by user mbse and it fails to start if you are not. +If it is started with the optional paramater init only the databases are +initialized. This is automagic done by mbtask when you start the system +for the very first time. You should never need to use this switch. +When mbsetup is started without arguments the databases will be checked +and initialized before the main screen is displayed. +Both methods are being used to make sure all needed databases excist. +For a detailed description of all setup options see +MBSE BBS Setup Guide
+mbsetup uses locking to protect the system databases. Some setup menus +can only be entered if the bbs is free, ie. no users logged on, no mailer +sessions, not tossing mail etc. If the bbs is free, then these menus can be +entered and the bbs will be closed. No users can login, tossers do not run etc. +Only mailer calls are still accepted. So be carefull not to stay too long in +these menus, you are blocking normal bbs use. In the top status bar this +situation is displayed. +

 

+ +

Environment.

+

+In order to run mbsetup you must set the global variable +$MBSE_ROOT. This variable must point to the root directory +of the bbs structure. The main configuration file config.data +must be present in the ~/etc directory. If it is not present, ie you run +mbsetup for the first time, a default +config.data will be created. This will also happen with +several other databases. +

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbstat.html b/html/programs/mbstat.html new file mode 100644 index 00000000..3130a60a --- /dev/null +++ b/html/programs/mbstat.html @@ -0,0 +1,79 @@ + + + + + + + + + + + +MBSE BBS Programs - mbstat - MBSE BBS Status Changer. + + + +
+
Last update 07-Jul-2001
+

mbstat - MBSE BBS Status Changer

+ +

Synopsis.

+

+mbstat [commands] <options> +

 

+ +

Description.

+

+mbstat changes the bbs status between open and close, can wait +for all users to logoff and wait for critical utilities to stop their actions. +

 

+ +

Environment.

+

+In order to run mbstat you must set the global variable +$MBSE_ROOT. This variable must point to the root directory +of the bbs structure. The main configuration file config.data +must be present in the ~/etc directory. +

 

+ +

Commands.

+

+mbstat semafore scanout will set the internal +semafore scanout in the mbtask daemon. The following semafore's +are valid: scanout, mailout, mailin, mbindex, reqindex, msglink. +

+mbstat close will close the bbs for users. +Users that are just logging in to the bbs will be thrown out after a short message. +Users already logged in will be thrown out when they pass by a menu prompt. +So users who are doing file transfers can finish their transfers before being disconnected. +

+mbstat open opens the bbs for users. +This should be run from one of the system startup scripts right after you started +mbsed. If you installed everything as it should this +command is already executed at system startup. +

+mbstat wait will +wait for the bbs to become free. This includes a check for utilities that +do critical actions so they can finish their job without corrupting the bbs +databases. The default is to wait 60 minutes. If the semafore +upsdown exists it will wait only 30 seconds. +

+You should run mbstat close wait in your system shutdown script so +that the system shutdown will wait for a clean shutdown of the bbs before +the rest of your system goes down. If you installed everything as it should +be then these commands are already installed in your system shutdown scripts. +

+ +

Options.

+

+mbstat [command] -quiet will supress screen output. +This is good for using mbstat in scripts. +

+ + +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbtask.html b/html/programs/mbtask.html new file mode 100644 index 00000000..65108ad4 --- /dev/null +++ b/html/programs/mbtask.html @@ -0,0 +1,432 @@ + + + + + + + + + + + +MBSE BBS Programs - mbtask - MBSE BBS Taskmanager. + + + +
+
Last update 10-Feb-2008
+

mbtask - MBSE BBS Taskmanager

+ +

Sysopsis.

+

+mbtask [-nd] +

 

+ +

Description.

+

+mbtask is the taskmanager for the whole MBSE BBS system. +This deamon keeps track of all client actions, +does the logging for the clients, does database locking, authorizes clients, +set/resets users "do not disturb flags", sends and receives chat messages, +keeps track of Zone Mail Hour, the status of the mail and files in the outbound, +and the BBS open/close status. +Communication between mbsed and the client programs is done via Unix +Datagram sockets. The protocol used to communicate between mbtask +and the clients is explained later. +This daemon also watches the semafore directory for some special files. +It also starts programs when they are needed. +The very first time mbtask is started it creates a default config.data and task.data, +the main configuration and task configuration files. +Then it calls mbsetup init to build the default databases. +mbtask should be started at system boot so the bbs system will start working. +The init script that is installed on your system will do that. +

+After startup and initalization mbtask runs internally once per second forever. +If there is nothing to do then this time will slowly increase upto 5 seconds. This time will be reset +to one second as soon as there is work to be done. The actual work is to check a number of external and +internal semafore's and act on these. +But before any program is started a number of things are checked: +

    +
  1. Check the system's load average. If it is too busy the processing of background + tasks is suspended until your system load drops. + The default setup is set at 1.50 but you can change that with mbsetup. Experience + will learn what the best value will be and I need some feedback on that.
    +
  2. The UPS semafore upsalarm will be checked. This means that the system is running on + battery power and no new jobs are started. +
  3. The UPS semafore upsdown will be checked. This is the fatal one, if + this one exists mbtask will try to stop all current running jobs. + If there are no jobs left running then mbtask will stop itself. + The upsdown semafore means that the system + will shutdown and power off, that's why it's fatal and there is no way back.
    +
  4. The status of the bbs will be checked, is it open or closed. If it is closed, no + jobs will be started. +
  5. The Zone Mail Hour is checked. If ZMH begins the semafore's zmh is + created. + If ZMH ends the semafore zmh is removed. +
  6. Each twenty seconds a ping is send to the IP addresses defined with mbsetup to + check if the internet can be reached. If both ping addresses fail, it is assumed that + the internet can't be reached. After a status change, the outbound will be + scanned. +
  7. Scan the mailer outbound for work. This builds a list of nodes with mail + in the outbound and sets the necessary flags on nodes who may be called. + If a node needs to be called, mbtask will spawn mbcico to + call this node. The number of free modem and ISDN ports and the maximum + number of TCP/IP sessions and already registered sessions, determine + howmany sessions will be started. The sessions will be started at + intervals of 20 seconds. + It will also set a time when something will change for a node, ie. a zone + mail hour is reached, or a mail window for a node with Txx flags is + reached. Internally this scheduler runs at the UTC clock because Fidonet + has all times defined in UTC. +
+Each new minute the timestamp of semafore mbtask.last is updated so that you can check that +mbtask is running. Also each minute is checked if the system configuration files are +changed, is so they are reloaded. There is no need to stop and start mbtask if you made +changes to the system configuration. +Then all kind of internal semafore's will be checked. The commands that are executed have default +values, but they can be changed wit mbsetup. The commands can be scripts as well. +The checks and actions are: +

+ + + + + + + + + + + + + + + +
SemaforeSpeedTasktypeDepends onJob to run
mailoutFastmbfidoMax. 1 mbfido taskmbfido scan web -quiet
mailinFastmbfidoMax. 1 mbfido taskmbfido tic toss web -quiet
newnewsFastmbfidoMax. 1 mbfido taskmbfido news web -quiet
mbindexFastmbindexNo other tasksmbindex -quiet and if exist: goldnode
msglinkFastmbfidoNo other tasksmbmsg link -quiet
reqindexFastmbfileNo other tasksmbfile index -quiet
scanoutSlowcallOnly 1 call taskmbcico -r1
+

+The Fast and Slow values mean: Fast is each second, Slow is check each 20 seconds. +As you can see, the system will not do too much at the same time. Jobs like compiling +new nodelists or create file request indexes have a very low priority. Because this +daemon checks the semafore's each second it responds much better that the old scripts +running on the cron daemon. The system will be expanded so that more outgoing calls +will be done at the same time, ie. ISDN and analogue calls, and if they are present +internet calls, will be made at the same time. +

+The mbtask program keeps also track of a unique number generator, this is +just a simple counter that is increased each time it is asked for a new number. +It will take years for the numbers to repeat. Even if the status file is lost +the chance that numbers are repeated on your system are almost zero. The first +time the counter is initialized it is set to the current unix time in seconds +since 1 januari 1970. This counter is used by several programs to create unique +.pkt filenames, msgid numbers etc. +

+The commandline option -nd is only for debugging, it allows to start +without becoming a daemon, mbtask will run in the foreground. This +option is only usefull for developers. +

 

+ +

Environment.

+

+In order to run mbtask you must set the global variable +$MBSE_ROOT. This variable must point to the root directory +of the bbs structure. +

 

+ + +

Security.

+

+mbtask is installed setuid root. This is needed to initialize +a raw socket for the ping function. After that is done the privilege drops to +user mbse before the child process is created and the rest +of the initialisation is done. +The child process can never get root privileges because it is spawned by user mbse. +

 

+ + +

Communications.

+

+Communication between the server and the clients is established by +Unix datagram sockets. There can be only 1 server running. +The server will accept connections from clients on your local machine only. +The limit for the amount of clients that can connect to the server is set to 100. +

+The server creates a Unix datagram socket at startup and waits for connections. +The name of this this socket is /opt/mbse/tmp/mbtask. +When a client connects it creates a Unix datagram socket in /opt/mbse/tmp, the name is +the name of the program, added with the pid of the program. So if mbcico is started +with pid 2312 the socket will be /opt/mbse/tmp/mbcico2312. +

+All commands are 4 capital letters followed by a colon, a number indicating +how much data fields will follow. If that number is higher than zero, the +data fields are seperated with commas. The command is terminated +with a ; character. Examples are:
+

+GCLO:0;                 Zero datafields command.
+DOPE:1,dbname;          One datafield command.
+
+All commands will receive a reply as soon as possible. If a +resource is temporary not available, a reply will follow too, telling +this condition. Replies can also contain optional data. Examples:
+
+100:0;                  Response 100, no data.
+200:1,Syntax error;     One datafield.
+
+Because data fields in commands and replies are separated and terminated by +, and ; characters these characters need to be escaped. Also characters outside +the us-ascii range must be escaped. This is done by translating the character +to a backslash followed by the hexadecimal number of the character. +The server has a 10 minute timeout for receiving data when a connection +is established. The clients need to "ping" the server at regular intervals +to prevent a disconnect. All official MBSE BBS programs do that. The pid +send with most commands is the pid of the calling program. Since this number +is unique, it is used to keep track of the connected clients. +

+The commands are divided in 26 catagories, most unused at this time. +

+

+Catagories:
+
+Cat.    Description
+----    -------------------------------------------
+Axxx    Accounting, system monitor info etc.
+Cxxx    Chatting
+Dxxx    Disk watch
+Gxxx    Global commands.
+Mxxx    MIB commands.
+Sxxx    Status commands.
+
+
+
+         Group A, Accounting.
+
+Command: AINI:5,pid,tty,uid,prg,city;   Initialize connection, and who am I.
+Reply:   100:1,line;                    Ok, linen is a logical linennumber for the bbs.
+         200:1,Syntax Error;            Error.
+
+Command: ADOI:2,pid,doing;              What am I doing right now.
+Reply:   100:0;                         Ok.
+         200:1,Syntax Error;            Error.
+
+Command: ACLO:1,pid;                    Close my connection.
+Reply:   107:0;                         Connection closed.
+         200:1,Syntax Error;            Error, connection is still open.
+
+Command: ALOG:5,fil,prg,pid,grade,txt;  Write a line of text in logfile with grade.
+Reply:   100:0;                         Ok.
+         201:1,errno;                   Error, number in errno.
+
+Command: ATCP:1,pid;			Registrate this session as TCP/IP session.
+Reply:   100:0;				Ok.
+         200:1,Syntax Error;		Error.
+
+Command: AUSR:3,pid,uid,city;           Set username and city
+Reply:   100:0;                         Ok.
+         200:1,Syntax Error;            Error.
+
+Command: ADIS:2,pid,flag;               Set Do Not Disturb flag.
+Reply:   100:0;                         Ok.
+         200:1,Syntax Error;            Error.
+
+Command: ATIM:1,time;                   Set new Client/Server timer in seconds.
+Reply:   100:0;                         Ok.
+         200:1,Syntax Error;            Error.
+
+Command: ADEF:0;                        Set Client/Server timer to default (10 minutes).
+Reply:   100:0;                         Ok.
+         200:1,Syntax Error;            Error.
+
+Command: ATTY:2,pid,tty;                Set new tty name.
+Reply:   100:0;                         Ok.
+         200:1,Syntax Error;            Error.
+
+
+         Group C, Chatting
+
+Command: CIPM:1,pid;                    Is Personal Message present.
+Reply:   100:2,fromname,message;        Yes, from .. with message text.
+         100:0;                         No.
+
+Command: CSPM:3,fromuser,touser,txt;    Send personal message to user.
+Reply:   100:1,n;                       n: 0=Ok, 1=Do not disturb, 2=Buffer full, 3=Error.
+         100:0;                         Impossible.
+
+Command: CSYS:2,pid,1;                  Sysop available for chat (from mbmon).
+         CSYS:2,pid,0;                  Sysop goes away (from mbmon).
+Reply:   100:0;                         Always Ok.
+
+Command: CPAG:2,pid,reason;             Page sysop for a chat.
+Reply:   100:1,n;                       1=busy, 2=sysop not available, 3=error.
+         100:0;                         Ok
+
+Command: CCAN:1,pid;                    Cancel sysop page.
+Reply:   100:0;                         Always Ok.
+
+Command: CCKP:0;                        Check sysop page (from mbmon).
+Reply:   100:3,pid,1,reason;            Page is active.
+         100:3,pid,0,reason;            Page is cancelled, user still online.
+         100:0;                         No page active.
+
+Command: CISC:1,pid;                    Check sysop in chatmode.
+Reply:   100:1,1;                       Yes and drop into chatmode.
+         100:1,0;                       No.
+
+Command: CCON:4,pid,username,unixname,n; Connect to chatserver with username. n=1 user is sysop.
+Reply:   100:1,error;                   Error with message.
+         100:0;                         Ok.
+
+Command: CCLO:1,pid;                    Close chat session.
+Reply:   100:1,error;                   Error.
+         100:0;                         Ok.
+
+Command: CPUT:2,pid,message;            Put message on chatserver.
+Reply:   100:2,0,error;                 Error, not fatal and continue.
+         100:2,1,error;                 Error, fatal and disconnect chat.
+	 100:0;                         Ok.
+
+Command: CGET:1,pid;                    Get message from chatserver.
+         100:2,0,message;               If message present.
+	 100:2,1,error;                 Error and disconnect chat.
+	 100:0;                         No new message.
+
+
+         Group D, Disk watch command.
+
+Command: DRES:0;                        Reset and reread disk tables.
+Reply:   100:0;                         Always Ok.
+
+Command: DSPC:0;                        Enough free diskspace.
+Reply:   100:1;n;                       0=No, 1=Yes, 2=Unknown, 3=Error.
+
+Command: DGFS:0;                        Get filesystem status (see note below).
+         100:n,data1, ..., data10;      Maximum 10 filesystems datalines.
+
+
+         Group G, Global commands.
+
+Command: GNOP:0;                        No OPerations.
+Reply:   100:0;                         Ok.
+
+Command: GPNG:1,data;                   Ping, echo data.
+Reply:   100:1,data;                    Ping reply.
+
+Command: GVER:0;                        Give server version.
+Reply:   100:1,Version ....;            Version reply.
+
+Command: GSTA:0;                        Get complete mbsed status record. (13 fields)
+Reply:   100:19,start,laststart,daily,startups,clients,tot_clients,tot_peak,syntax_errs,
+                com_errs,today_clients,today_peak,today_syntax,today_comerr,bbsopen,
+                is_zmh,do_inet,processing,system_load,sequence;
+
+Command: GMON:1,n;                      Get registration info line, 1=First, 0=Next line.
+Reply:   100:7,pid,tty,user,program,city,isdoing,starttime;
+         100:0;                         No more lines.
+
+Command: GSYS:0;                        Get bbs statistics.
+         100:7,calls,pots_calls,isdn_calls,network_calls,local_calls,startdate,lastcaller;
+
+Command: GLCC:0;                        Get Lastcallers count
+         100,1,n;                       Return counter value.
+
+Command: GLCR:1,recno;                  Get Lastcaller record
+         100:9,user,location,level,tty,time,minsmcalls,speed,cations;
+         201:1,16;                      Not available.
+
+
+         Group M, MIB commands.
+
+Command: MSMS:6,kbrcvd,kbsent,direction,state,itype,freqs; Set Mailer Session
+Reply:   100,0;
+
+Command: MGMS:0;			Get Mailer Session
+Reply:	 100:12,kbrcvd,kbsent,sessin,sessout,sess_sec,sess_unseq,sess_bad,ftsc,yoohoo,emsi,binkp,freqs;
+
+Command: MSTN:3,in,out,bad;		Set Tosser Netmail
+Reply:   100,0;
+
+Command: MGTN:0;			Get Tosser Netmail
+Reply:	 100:3,in,out,bad;
+
+Command: MSTI:3,in,out,bad;		Set Tosser Internet-email
+Reply:   100,0;
+
+Command: MGTI:0;			Get Tosser Internet-email
+Reply:   100:3,in,out,bad;
+
+Command: MSTE:4,in,out,bad,dupe;	Set Tosser Echomail
+Reply:   100:0;
+
+Command: MGTE:0;			Get Tosser Echomail
+Reply:   100:4,in,out,bad,dupe;
+
+Command: MSTR:4,in,out,bad,dupe;	Set Tosser RFC-news
+Reply:   100:0;
+
+Command: MGTR:0;			Get Tosser RFC-news
+Reply:   100:4,in,out,bad,dupe;
+
+Command: MGTT:0;			Get Tosser Totals
+Reply:	 100:4,in,out,bad,dupe;
+
+Command: MSFF:6,in,out,bad,dupe,magics,hatched;	Set Tosser Files
+Reply:   100:0;
+
+Command: MGFF:0;			Get Tosser Files
+Reply:   100:6,in,out,bad,dupe,magics,hatched;
+
+Command: MSBB:9,sessions,minutes,posted,uploads,kbupload,downloads,kbdownload,chats,chatminutes; Set BBS
+Reply:   100:0;
+
+Command: MGBB:0;			Get BBS
+Reply:	 100:9,sessions,minutes,posted,uploads,kbupload,downloads,kbdownload,chats,chatminutes
+
+Command: MGOB:0;			Get Outbound Size
+Reply:   100:1,size;
+
+
+         Group S, Status commands.
+
+Command: SBBS:0;                        Get BBS Status (open, zmh, shutdown).
+Reply:   100:2,0,The system is open for use;
+         100:2,1,The system is closed right now!;
+         100:2,2,The system is closed for Zone Mail Hour!;
+
+Command: SOPE:0;                        Open the BBS.
+Reply:   100:0;                         Ok.
+
+Command: SCLO:1,mesage;                 Close the BBS with reason.
+Reply:   100:0;                         Ok.
+
+Command: SFRE:0;                        Is the BBS Free.
+Reply:   100:1,Running utilities: n  Active users: n;
+         100:0;                         It's free.
+
+Command: SSEQ:0;                        Get next unique sequence number.
+Reply:   100:1,number;                  Next unique sequence number.
+
+Command: SEST:1,semafore;               Get status of internal semafore.
+Reply:   100:1,n;                       1 = set, 0 = not set.
+         200:1,16;                      Semafore not known.
+
+Command: SECR:1,semafore;               Set semafore
+Reply:   100:0;                         Ok.
+         200:1,16;                      Error.
+
+Command: SERM:1,semafore;               Remove semafore
+Reply:   100:0;                         Ok (also if there was no semafore).
+         200:1,16;                      Semafore not known.
+
+Note: in reply of DGFS the reply is 100:n,size free mountpoint fstype,..... +where n = 1 for 1 filesystem, and 10 for a total of 10 filesystems. There +will never be a reply for more then 10 filesystems. The reported filesystems +are collected by a thread process of mbtask that only includes the filesystems +actually used by mbse. +This is used by the mbmon program to get a "live" view of your filesystems. +The GSPC command is used by utilities to check if enough space is available to +continue to work safely. +

 

+ +IndexBack to index  +MainBack to Main index +

+ + diff --git a/html/programs/mbtoberep.html b/html/programs/mbtoberep.html new file mode 100644 index 00000000..088f0bed --- /dev/null +++ b/html/programs/mbtoberep.html @@ -0,0 +1,47 @@ + + + + + + + + + + + +MBSE BBS Programs - mbtoberep - List newfiles to report. + + + +
+
Last update 31-Jan-2001
+

mbtoberep - List newfiles to report

+ +

Synopsis.

+

+mbtoberep +

 

+ +

Description.

+

+mbtoberep is a small utility to list the file +~/etc/toberep.data which contains the newfiles found on your system before +mbaff announce is run. This program is intended for system +development but I decided to leave it in the distribution for now. If you +pipe the output thru more or less you are able to inspect the records. +

 

+ +

Environment.

+

+In order to run mbtoberep you must set the global variable +$MBSE_ROOT. This variable must point to the root directory +of the bbs structure. The main configuration file config.data +must be present in the ~/etc directory. +

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbuser.html b/html/programs/mbuser.html new file mode 100644 index 00000000..08f23a6f --- /dev/null +++ b/html/programs/mbuser.html @@ -0,0 +1,71 @@ + + + + + + + + + + + +MBSE BBS Programs - mbuser - User Database Maintenance. + + + +
+
Last update 02-Feb-2001
+

mbuser - User Database Maintenance

+ +

Sysnopsis.

+

+mbuser [commands] <options> +

 

+ +

Description.

+

+mbuser is the user database maintenance program. It can delete +users upto a certain level who have not called for a number of days. It can +also pack the user database. This is not really a pack of the database, the +deleted records are zeroed but the database is never shrinked. Every user +once in this database will keep his record forever. This is to be sure that +all LastRead Pointers will be correct. Records that are zeroed can be +reused for new users. mbuser must run setuid root and +setgid root because it executes /usr/sbin/userdel to delete the Unix account +of the user that is removed from the bbs. +

 

+ +

Environment.

+

+In order to run mbuser you must set the global variable +$MBSE_ROOT. This variable must point to the root directory +of the bbs structure. The main configuration file config.data +must be present in the ~/etc directory. mbuser must be +installed setuid root and setgid root, ls -la looks like this:
+

+-rws--s--x   1 root     root        23560 Jun 19 19:50 /opt/mbse/bin/mbuser*
+
+

 

+ +

Commands.

+

+mbuser kill [n] [l] will mark users to delete who have not +called in n days upto and including level l. +

+mbuser pack will delete (zero) the users marked for deletion. +You should also run this command if you marked users to delete with +mbsetup. +

 

+ +

Options.

+

+mbuser [command] -quiet will suppress screen output, this is +for running mbuser in the background or from the crontab. +

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/programs/mbuseradd.html b/html/programs/mbuseradd.html new file mode 100644 index 00000000..12d1c908 --- /dev/null +++ b/html/programs/mbuseradd.html @@ -0,0 +1,71 @@ + + + + + + + + + + + +MBSE BBS Programs - mbuseradd - The useradd wrapper. + + + +
+
Last update 27-Aug-2005
+

mbuseradd - The useradd wrapper.

+ +

Sysnopsis.

+

+mbuseradd [gid] [username] [comment] [userdir] +

 

+ +

Description.

+

+mbuseradd is the wrapper for the useradd +program that should be present on most GNU/Linux systems. useradd +may only be executed by root and there are some other minor +things that need to be done as root to create a new Unix +account that can be used with MBSE BBS. The solution for these problems is +mbuseradd, this little program runs setuid root and setgid +root. If it fails to do that it aborts. mbuseradd is called +by mbnewusr and checks if it's called like that. +If it is successfull the user will +have an entry in /etc/passwd, the comment is his Fidonet name, and his shell +is $MBSE_ROOT/bin/mbsebbs. +

+If all this is successfull until now, the homedirectory for this user is +created and the right ownership and permissions are set. In his homedirectory +the empty file .hushlogin is placed to prevent check for +new mail when he logs into your system. This is the Unix mailcheck that is +skipped and has nothing todo with the check for new mail in the bbs. All +other directories that are needed for the bbs are created by mbsebbs. +

 

+ +

Environment.

+

+In order to run mbuseradd you must set the global variable +$MBSE_ROOT. This variable must point to the root directory +of the bbs structure. The main configuration file config.data +must be present in the ~/etc directory. mbuseradd must be +installed setuid root and setgid root, ls -la looks like this:
+

+-rws--s--x   1 root     root         6644 Jun 26 21:23 /opt/mbse/bin/mbuseradd*
+
+

 

+ +

Commands.

+

+Not mentioned here because mbuseradd is only called by mbnewusr, +running manually is not supported. + +

+ +IndexBack to index  +MainBack to Main index +

+ + + diff --git a/html/routing.html b/html/routing.html new file mode 100644 index 00000000..3fb2cac6 --- /dev/null +++ b/html/routing.html @@ -0,0 +1,211 @@ + + + + + + + + + + + +Netmail routing behaviour. + + + +
+
Last update 22-Oct-2001
+

MBSE BBS Netmail routing behaviour

+ +

Introduction

+

+The mbfido program that is responsible for unpacking, +importing, exporting and routing of netmail has a build in default routing +plan. In general this is quite simple, if we know the destination node or +his uplink, (that node or uplink is in our setup), then we will route via +that node in our setup. If the node or his uplink is not in our setup, then +the nodelist is used and normal fidonet routing is used. This means, if you +are a node, everything goes to your hub, if you are a hub, then mail for +your downlinks will go direct to the downlinks because they are in your setup, +everything else goes to the host. +If you are a host, then your own downlinks will get the mail direct, +the downlinks of the hubs in your net well be routed via the hubs below you. +If it is for a node in your region but outside your net, mail will be routed via +the other hosts in your region. Mail to outside your region will go to the +region coordinators system. +

 

+ +

Tracking and bouncing

+

+At this moment there is no bouncing of undeliverable mail. I will built this +in, but it will only work inside your own net. I will never include code for +bouncing mail outside your net, because nodelists are always not uptodate. +

 

+ +

Special routing

+

+What if you need special routing. The solution is simple, add the routing +nodes to your setup and fill in the "route via" field. If you don't have a +session password with that node, leave the password fields blank. This node +will never know that he is in your setup as long as you have the notify +settings for that node switched off. To figure +out such solutions yourself, I have included the flow diagrams for the tracking +module. +

 

+ +

Main tracking routine:

+
+
+	+=============================+
+	|     Trackmail to dest.      |
+	+--------------+--------------+
+		       |
+	++-------------+-------------++
+	||   rc = GetRoute to dest   || (See next diagram).
+	++-------------+-------------++
+		       |
+	+--------------+--------------+  yes
+	|       rc = R_NOROUTE        +-----------------+
+	+--------------+--------------+		+-------+--------+
+		       | no			| res: R_NOROUTE |
+		       |			+================+
+	+--------------+--------------+  yes
+	|       rc = R_UNLISTED       +-----------------+
+	+--------------+--------------+		+-------+--------+
+		       |			| res: R_UNLISTED|
+		       |			+----------------+
+	+--------------+--------------+  yes
+	|        rc = R_LOCAL         +-----------------+
+	+--------------+--------------+		+-------+--------+
+		       | no			| result: R_LOCAL|
+		       |			+================+
+	+--------------+--------------+  no
+	|   routing node in setup ?   +-----------------+
+	+--------------+--------------+		+-------+--------+
+		       | yes			|   result:  rc  |
+		       |			+================+
+	+--------------+--------------+  no
+	|   "Route via" filled in ?   +-----------------+
+	+--------------+--------------+		+-------+--------+
+		       | yes			|  res: R_ROUTE  |
+		       |			+================+
+	+--------------+--------------+
+	|   Change route to address   |
+	|       result = R_ROUTE      |
+	+=============================+
+
+
+

Sub function GetRoute:

+
+
+	+=============================+
+	|          GetRoute           |
+	+--------------+--------------+
+		       |   
+	+--------------+--------------+
+	|      Add domain name	      |
+	+--------------+--------------+
+		       |
+	+--------------+--------------+ yes
+	|  Is dest our own address ?  +------------------+
+	+--------------+--------------+		+--------+-------+
+		       | no			|   rc = R_LOCAL |
+		       |			+================+
+	+--------------+--------------+ yes
+	| Is dest our point address ? +------------------+
+	+--------------+--------------+		+--------+-------+
+		       | no			|  rc = R_DIRECT |
+		       |			+================+
+	+--------------+--------------+ yes (route to boss)
+	|    Are we a point system    +------------------+
+	+--------------+--------------+		+--------+-------+
+		       | no			| dest is my Boss|
+		       |                        |  res: R_DIRECT |
+		       |			+----------------+
+	+--------------+--------------+ yes
+	| Dest. addr. in nodes setup? +------------------+
+	+--------------+--------------+		+--------+-------+
+		       | no			|  rc = R_DIRECT |
+		       |			+================+
+	+--------------+--------------+ yes
+	| Boss of point dest in setup +------------------+
+	+--------------+--------------+		+--------+-------+
+		       | no			|  rc = R_DIRECT |
+		       |			|   dest = Boss  |
+		       |			+================+
+	+--------------+--------------+ 
+	| Is node listed and do we    | yes
+        | know his uplink in setup ?  +------------------+
+	+--------------+--------------+		+--------+-------+
+		       | no			| dest is uplink |
+		       |			|  rc = R_DIRECT |
+		       |			+================+
+	+--------------+--------------+ yes
+	|   Are we host in network ?  +------------------+
+	+--------------+--------------+		+--------+-------+
+		       | no			| Set host addr. |
+		       |			+--------+-------+
+		       |				 +----------+
+	+--------------+--------------+ yes			    |
+	|    Are we hub in domain ?   +------------------+	    |
+	+--------------+--------------+		+--------+-------+  |
+		       | no			|  Set hub addr. |  v
+		       |			+--------+-------+  |
+		       |				 |	    |
+		       +---------------<-----------------+-----<----+
+		       |
+	+--------------+--------------+
+	|    Set our region number    |
+	+--------------+--------------+
+		       |
+		       |
+	+--------------+--------------+ no
+	|       Host address set ?    +-----------------------------+
+	+--------------+--------------+				    |
+		       | yes					    |
+		       |					    |
+	+--------------+--------------+ 
+        |  Dest region <> our region  | yes			    |
+	|  or Dest zone <> our zone   +------------------+	    |
+	+--------------+--------------+		+--------+-------+  |
+		       | no			|   Dest to RC   |  |
+		       |			|  rc = R_ROUTE  |  |
+		       |			+================+  |
+	+--------------+--------------+ yes			    |
+	|     Dest net <> our net     +------------------+	    |
+	+--------------+--------------+		+--------+-------+  |
+		       | no			| to host destnet|  |
+		       |			|  rc = R_ROUTE  |  |
+		       |			+================+  |
+	+--------------+--------------+ yes			    |
+	|       Has node a hub        +------------------+	    |
+	+--------------+--------------+		+--------+-------+  |
+		       | yes			| to node's hub  |  |
+		+------+--------+		|  rc = R_ROUTE  |  |
+		| dest is direct|		+================+  |
+		|  rc = R_ROUTE |				    |
+		+===============+				    |
+								    |
+		       +------------------------<-------------------+
+	+--------------+--------------+ no
+	|       Hub address set ?     +-----------------+
+	+--------------+--------------+		+-------+--------+
+		       | yes			|  via our hub   |
+		       |			|  rc = R_ROUTE  |
+		       |			+================+
+	+--------------+--------------+ yes
+	|  Dest node of our hub addr  +-----------------+
+	+--------------+--------------+		+-------+--------+
+		       | no			|  rc = R_DIRECT |
+		       |			+================+
+		+------+-------+
+		| dest is host |
+		| rc = R_ROUTE |
+		+==============+
+
+
+ +BackGo Back +
+ + diff --git a/html/setup/archiver.html b/html/setup/archiver.html new file mode 100644 index 00000000..ab0316c2 --- /dev/null +++ b/html/setup/archiver.html @@ -0,0 +1,57 @@ + + + + + + + + + + + +MBSE BBS Setup - Archiver programs. + + + +
+
Last update 09-Nov-2003
+

MBSE BBS Setup - archiver programs

+ +To process mail, files and test new uploads you need archivers to process those +files. For each (un)archiver you must setup the full path and filename and +commandline switches. Archivers and unarchivers may be different programs such +as zip and unzip.

+There is a little +difference in processing mail and files, mail will always work on the same +directory, while for ticfile processing the archives can contain subdirectories. +So it is obvious that for rearchiving a file you need the recursive +switches to keep the directory structure within an archive as it was.

+There is also a special command to replace a banner in an archive. This is when +you receive files with the banner of your uplink in it and you want to replace +it with the add of your own bbs and you don't want to mess with the files in +the archive.

+The last option is to extract the file FILE_ID.DIZ from the +archive, this can be used for file description when the file is imported in +your bbs. To make life a little more easy, during the first bbs setup the most +common archivers already configured. You only need to make sure that they are +really present on your system. +

+When you configured the sources and build mbse, the configure script searched +for excisting archivers. When mbsetup was run the first time, when mbtask was +started, the archivers found on your system are already configured with the +right paths and enabled. +If you want the refresh the archivers configuration again after you added new +archiver programs, then remove /opt/mbse/etc/archiver.data. Compile the whole +bbs again, start with make clean and ./configure. +After you reinstalled the binaries, run mbsetup and the new archivers are +automagic added to the setup. Of course, you can also add new archivers +manually. Archivers that were not originally found but are known, are present in +the setup but are disabled. +

+ +BackBack to index  +HomeBack to main index +

+ + + diff --git a/html/setup/bbs.html b/html/setup/bbs.html new file mode 100644 index 00000000..6fb211a8 --- /dev/null +++ b/html/setup/bbs.html @@ -0,0 +1,40 @@ + + + + + + + + + + + +MBSE BBS Setup - Edit BBS Setup. + + + +
+
Last update 02-Mar-2003
+

MBSE BBS Setup - Edit BBS Setup.

+ +

Edit BBS Setup.

+

+The BBS setup is split in the following sections: +

+ +

    +
  1. Security limits +
  2. Language setup +
  3. BBS menus +
  4. File areas +
  5. Transfer protocols +
  6. BBS List data +
  7. Oneliners +
+ +BackBack to index  +HomeBack to main index +
+ + + diff --git a/html/setup/chat.html b/html/setup/chat.html new file mode 100644 index 00000000..41033a81 --- /dev/null +++ b/html/setup/chat.html @@ -0,0 +1,46 @@ + + + + + + + + + + + +MBSE BBS Setup - Internet BBS Chat. + + + +
+
Last update 16-Nov-2005
+

MBSE BBS Setup - Internet BBS Chat

+ +

Introduction.

+

+MBSE BBS has the chat system that can be linked via internet, Internet BBS +Chat (IBC) using the protocol described in FSP-9999.999. With this setup you can +define other BBS systems to link with. To use IBC with other systems you need to +make sure that UDP port 60179 is open on your firewall. +

 

+ +

Edit systems

+

+

+Comment   The remote BBS name or a comment.
+Server    The Full Qualified Domain Name of the remote.
+Dyn. DNS  Yes if the remote uses a dyndns name.
+Myname    My FQDN (default copied from 1.2.10).
+Password  The password for the link.
+Active    Is the link active.
+Deleted   If this records must be deleted.
+Compress  Use zlib compression on the link (Not yet).
+
+

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/domains.html b/html/setup/domains.html new file mode 100644 index 00000000..83801de7 --- /dev/null +++ b/html/setup/domains.html @@ -0,0 +1,47 @@ + + + + + + + + + + + +MBSE BBS Setup - Edit Domains. + + + +
+
Last update 25-Oct-2001
+

MBSE BBS Setup - Edit Domains.

+ +

Introduction.

+

+The domains table is used to translate Fidonet domains to internet domains +and back for the Fidonet <-> Internet gateway. When you add entries to +this table make sure that the entry .fidonet and +.ftn is always the last entry. This is the default entry. +New added domains can be moved in place with the Move +command. +

 

+ +

Edit Domains.

+

+

+Fidonet   The Fidonet domain to match.
+Internet  The internet domain to match.
+Active    If this domain is active.
+Deleted   If this domain must be deleted.
+
+

+Next is an example table. +

+Domains example +

+BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/emareas.html b/html/setup/emareas.html new file mode 100644 index 00000000..95c1be3a --- /dev/null +++ b/html/setup/emareas.html @@ -0,0 +1,134 @@ + + + + + + + + + + + +MBSE BBS Setup - Mail Setup - Mail Areas. + + + +
+
Last update 14-Oct-2007
+

MBSE BBS Setup - Mail Setup -> Mail Areas.

+ +

Introduction.

+

+Mail areas have fixed area numbers, just like file areas. But if you want you +can move areas. +Some offline readers don't like changing the area numbers. All areas can +be of the following types: local, netmail, echomail and news. If you gate +news and echomail in the same area, then select echomail +if this area is a Fidonet area, select news if this area is a Usenet news area. +

+There is a global setup tool, if you are in the main message area setup screen then +you can choose the Global command. This will allow you to do bulk changes on areas +selected by the mail groups. Options are delete connection, add new connection, +replace connection, change connection status, change days old for purge, change +maximum messages for purge, change user security, change aka to use, change origin line, +change netmail reply board and delete message area. +

 

+ +

Message Area Setup.

+

+

+Area Name   The description of the area.
+Area Tag    The echomail area tag.
+Group       The name of the echomail group.
+Newsgroup   The newsgroup name if you are gating this area.
+JAM base    The path and name of the JAM message base without extension.
+Origin      The origin line to add to echomail messages.
+Fido Aka    The Fidonet aka for this area.
+QWK name    The name of the area for OffLine Readers.
+Distrib.    Leave this blank for now!
+Area Type   Local, Netmail, Echomail or News.
+Msg Kinds   Private/Public, Private, Public, Read Only.
+Charset     Default characterset for the area
+Active      If this area is active.
+Days Old    The maximum age of the messages before purging.
+Max. Msgs   The maximum messages in this area.
+Articles    The maximum news headers to fetch.
+Netreply    Netmail reply area if this is echomail.
+Read Sec.   The security level to read messages.
+Write Sec.  The security level to write messages.
+Sysop Sec.  The security level to do sysop actions.
+User Del.   Users may delete their own messages.
+Aliases     Allow the use of an Alias.
+Quotes      Add a random quote under new messages (Oneliner database).
+Mandatory   If this area is mandatory for downlinks.
+UnSecure    Don't check link address during toss (Dangerous!).
+OLR Default Switch area default on for OLR users.
+OLR Forced  Area is always on for OLR users.
+Connections This will take you to the screen to edit up and downlinks.
+Security    The security flags for downlinks to access this area.
+
+

+ +Mail areas setup +

 

+ +

Edit connection

+

+

+Aka         The network address.
+Send to     Export mail to this node.
+Recv from   Import mail form this node.
+Pause       The node is temporary disconnected.
+Excluded    The node is disconnected by the sysop.
+Delete      Delete this connection.
+
+

+A note about the excluded switch. This can be used to disconnect a node +from the area by moderator request. AreaMgr requests from that node +for this area are not processed anymore, he cannot disconnect this area +and reconnect. +If you want to block access to the area in a certain group for a node who has +access to the group you should use the Security flags and also set the correct +security flags for the node. +

 

+ + +

Global Commands.

+

+From menu 9.2 you can enter the global commands menu. In this menu you can: +

    +
  1. Delete connection +
  2. Add new connection +
  3. Replace connection +
  4. Change connection status +
  5. Change days old +
  6. Change max. messages +
  7. Change max. articles +
  8. Change bbs security +
  9. Change link security +
  10. Change aka to use +
  11. Change origin line +
  12. Change netmail reply +
  13. Delete message area +
+After you have selected the action you want and added the items to do, you will see +a screen were you can select message area groups. You can then tag one or more +groups and press enter when you are done. Then you have one chance to perform the +actions or to bail out. All areas matching in that group are affected by your +changes. If you are not happy with the result, don't save the database and no +harm is done. The file mbsetup.log shows all affected areas. +

 

+ + +

Automatic area creation.

+

+If you want to use the automatic area creation you have to define this in the +message area groups. This has been changed since MBSE BBS version 0.33.19. +

+ +BackBack to Mail Setup  +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/emgroup.html b/html/setup/emgroup.html new file mode 100644 index 00000000..5e73d16e --- /dev/null +++ b/html/setup/emgroup.html @@ -0,0 +1,70 @@ + + + + + + + + + + + +MBSE BBS Setup - Mail Setup - Message Groups. + + + +
+
Last update 27-Mar-2006
+

MBSE BBS Setup - Mail Setup - Message Groups.

+ +

Introduction.

+

+Message Groups are to logically divide your echomail areas in groups for +different mail networks. It makes sense to select the groups by uplink, and +areas file that is available for each network. When you have defined a Areas +file and a message is received while you have no area for it, the area will be +created with the defaults that are set in the message area group. This will only +work if you receive a message from the uplink defined in this group, not from +any downlinks. +A note about the Start at area you can define, this may be higher then +your number of areas currently is. As soon as a area is created in this group +the areas database will be expanded so that it fits. Select these values +carefully, make sure you have room for all possible areas in that group and +skip a number of extra areas for future expansion. +

 

+ +

Message Group Setup.

+

+

+Name        The name of the group.
+Comment     The description of the group.
+Base path   The base for the JAM path without the area name.
+Read sec    The read security for bbs users for auto created areas.
+Write sec   The write security for bbs users for auto created areas.
+Sysop sec   The sysop security for bbs users for auto created areas.
+Link sec    The link security to copy to new created areas.
+Start at    Start area number (lowest) to create new areas.
+Net reply   Netmail reply board for auto created areas.
+Users del   User may delete for auto created areas.
+Aliases     Are aliases allowed in auto created areas.
+Quotes      Append a quote when user writes in auto created areas.
+Active      If this group is active.
+Deleted     If this group must be deleted.
+Auto change Change areas when running mbfido areas.
+User change Create/delete areas when users connect/disconnect.
+Use Aka     The Fidonet aka to use.
+Uplink      The Fidonet aka of your uplink.
+Areas       Areas file in the path defined in 1.4.6 screen 2.
+Charset     Default character set to use.
+GoldED grp  Groupnumber for GoldED include file.
+
+

+Mail groups setup +

+ +BackBack to Mail Setup  +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/fdb.html b/html/setup/fdb.html new file mode 100644 index 00000000..93a45b98 --- /dev/null +++ b/html/setup/fdb.html @@ -0,0 +1,54 @@ + + + + + + + + + + + +MBSE BBS Setup - Files Database. + + + +
+
Last update 08-Mar-2004
+

MBSE BBS Setup - Files Database.

+ +

Introduction.

+

+This option allows you to manually edit the files in the files database. +The option to edit the file description is not present at this moment, but +will be when I have the time. The basic file entries can't be changed. +

 

+ +

Edit File.

+

+

+FileName  The 8.3 filename of the file.
+Long fn   The long filename of the file.
+FileSize  The size of the file in bytes.
+FileDate  The real date of the file.
+Last DL.  The date of the last download of the file.
+Upl.Date  The upload date.
+TIC Area  The name of the tic area the file was received in.
+Magic     The magic name to download/freq this file.
+Uploader  The name of the uploader.
+Times DL  The number of times downloaded from the BBS.
+Password  The password to access this file.
+Deleted   If this file should be deleted.
+No Kill   Don't delete this file with mbfile
+Announced If this file is ever announced as new.
+
+

+ +File database setup +

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/fegroup.html b/html/setup/fegroup.html new file mode 100644 index 00000000..62e3f04c --- /dev/null +++ b/html/setup/fegroup.html @@ -0,0 +1,81 @@ + + + + + + + + + + + +MBSE BBS Setup - File Echo's Setup - File Groups. + + + +
+
Last update 08-Mar-2003
+

MBSE BBS Setup - File Echo's Setup - File Groups.

+ +

Introduction.

+

+File echo groups are to logically divide your file echo's for different +file distribution networks. +This screen also has a lot of fields that are needed for the auto area create. +When a new area is created a bbs download area is made and a new tic area record +is made. +It makes sense to select the groups by uplink and +area file that is available for that file distribution network. By doing that +downlinks can connect areas that are not yet connected at your bbs but are +available from your uplink. If you are connected to the filegate then there is +one area file for all distribution groups. You must then create a file group for +each distribution group, ie. Fidonet, SDS etc. The name of that group must +exactly match the comment field in the group in this setup. +

 

+ +

File Group Setup.

+

+

+Name      File Echo Group name.
+Comment   The description of that group.
+Base path The base path for new created areas.
+Active    If this group is active.
+Use Aka   The Fidonet aka to use for this group
+Uplink    The Fidonet aka of the uplink.
+Areas     The name of the areas file (in ~/var/arealists).
+Filegate  Is area file in filegate.zxx format or not.
+Banner    Banner file to add to archives.
+Convert   Archiver to convert archive to.
+BBS group BBS group name.
+New group New files announce group.
+Active    If this group is active.
+Deleted   If this group must be deleted.
+Start at  New created areas must start at area nr.
+Auto chng Auto change when running mbfido areas
+User chng Auto create areas on downlinks requests.
+Replace   Set replace option in new areas.
+Dupecheck Set Dupecheck option in new areas.
+Secure    Set secure option in new areas.
+Touch     Set Touch filedate option in new areas.
+Virscan   Set virus scanner option in new areas.
+Announce  Set announce files option in new areas.
+Upd magic Set update magicname option in new areas.
+File ID   Set File ID option in new areas.
+Conv. all Set convert all option in new areas.
+Send orig Set send original option in new areas.
+DL sec    Set download security in new areas.
+UP sec    Set upload security in new areas.
+LT sec    Set list security in new areas.
+Upl. area Set upload area number in new areas.
+Link sec  Set link security to copy to new areas.
+
+

+File echo groups setup +

+ +BackBack to File Echo's Setup  +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/fidonet.html b/html/setup/fidonet.html new file mode 100644 index 00000000..c73af6e2 --- /dev/null +++ b/html/setup/fidonet.html @@ -0,0 +1,41 @@ + + + + + + + + + + + +MBSE BBS Setup - Fidonet Networks. + + + +
+
Last update 29-Jan-2001
+

MBSE BBS Setup - fidonet Networks

+ +Each fidonet network can have maximum 6 zones. The main zone (where you are) +must be the first zone, the others will follow. You can add 6 additional +nodelists to merge with the main nodelist. These additional nodelists are +normally more recent that the main nodelist, so entries in the additional +nodelists will replace entries from the main nodelist when you compile the +nodelists. In the shown example you can see that I have a regional nodelist +and a pointlist added for my region. For each additional list you must +specify the RC address because that information is normally not present in these +nodelists. Watch out! Nodelist names are case sensitive. If you receive a +nodelist and automatic put them in place with the mbfido +program, and the resulting file is uppercase, you must use uppercase names +here also. You don't need to give the extension of the nodelist name, the +mbindex will figure that out. +

+Fidonet networks setup +

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/fileecho.html b/html/setup/fileecho.html new file mode 100644 index 00000000..47ff72dd --- /dev/null +++ b/html/setup/fileecho.html @@ -0,0 +1,96 @@ + + + + + + + + + + + +MBSE BBS Setup - File Echo's Setup - TIC Areas. + + + +
+
Last update 12-Aug-2005
+

MBSE BBS Setup - File Echo's Setup - TIC Areas.

+ +

Introduction.

+

+In this setup you can define the File Echo's or TIC areas. Files received or +send from this areas are bound together with a *.tic file with information +about the file and where to store that file. Each file echo must belong to a +group, in this grouprecord is the information about costsharing and some +other details. When a file is received at your system you can do several +things with that file before it is stored in your download areas such as; +scanning the file for virusses, extracting the FILE_ID.DIZ file to use as +description, allow update of magic alias, convert to another compression +format, replace the file archive comment with an add of your own bbs and limit +the number of files (nodelists). +

 

+ +

TIC Area Setup.

+

+

+Comment    A description for this area.
+Area tag   The tag for this area.
+Security   The security access flags for downlinks.
+BBS area   The BBS download area number, 0 means passthru.
+Message    Not in use yet.
+Group      The group where this area belongs to.
+Keep #     The number of files to keep, the name must match.
+Fido aka   The Fidonet aka to use for this area.
+Convert    The archiver to convert to, leave blank for none.
+Banner     The bannerfile (in ~/etc) to replace in the archive.
+Replace    Honor the "Replace" command in the .tic file.
+Dupecheck  Check for duplicates in this area.
+Secure     Check if the sending system is connected.
+Touch      Touch rearchived files to the original date.
+Virus sc.  Try to scan for virusses.
+Announce   Files may be announced in this area.
+Upd magic  Allow update magic request name.
+File_id    Try to use the FILE_ID.DIZ file for description.
+Conv.all   Convert archive even if it is already right.
+Send org.  Send original received file instead of the file from the BBS.
+Mandatory  Downlinks can't disconnect from this area.
+Notified   Not in use yet.
+Upl discon Not in use yet.
+Deleted    If this area must be deleted.
+Active     If this area is active.
+New SR     Give new node links the status SR instead of S.
+Systems    To the screen with connected systems.
+
+

+TIC area setup +

+ + +

Global Commands.

+

+From menu 10.2 you can enter the global commands menu. In this menu you can: +

    +
  1. Delete connection +
  2. Add new connection +
  3. Replace connection +
  4. Change connection status +
  5. Change aka to use +
  6. Change security flags +
  7. Delete TIC area +
+After you have selected the action you want and added the items to do, you will see +a screen were you can select TIC file area groups. You can then tag one or more +groups and press enter when you are done. Then you have one chance to perform the +actions or to bail out. All areas matching in that group are affected by your +changes. If you are not happy with the result, don't save the database and no +harm is done. The file mbsetup.log shows all affected areas. +

+ + +BackBack to File Echo's Setup  +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/filefind.html b/html/setup/filefind.html new file mode 100644 index 00000000..82f7bf39 --- /dev/null +++ b/html/setup/filefind.html @@ -0,0 +1,57 @@ + + + + + + + + + + + +MBSE BBS Setup - Filefind Areas. + + + +
+
Last update 05-Mar-2007
+

MBSE BBS Setup - Filefind Areas.

+ +

Introduction.

+

+The filefind idea on Fidonet came from the program Allfix written by Harald +Harms. The idea is +that a user writes a mail in a filefind area addressed to "Allfix" with in the +subject line the items to search for. On all BBS'es with a filefind utility +those programs try to find the requested files and then produce a reply of +which files they have found. That reply can be in the same area, in a special +reply echo or can be sent by netmail. Usually the user gets a lot of replies +from which he can see if someone has the file(s) available he was searching +for. +

 

+ +

Filefind Setup.

+

+

+Comment     The comment for this area.
+Origin      The origin line to use for the reply.
+Aka to use  The Fidonet aka to use in this area.
+Scan area   The JAM area in which to scan for requests.
+Reply area  The JAM area to put the replies in, leave blank if in the same area.
+Language    The language to use for the reply.
+Template    The name of the macro template file.
+Active      If this area is active.
+Deleted     If this area must be deleted.
+Net. reply  If the reply will be sent by netmail.
+CHRS kludge The CHRS kludge and encoding to use.
+Keywrd len  The minimum keyword length allowed in search.
+
+

+Filefind setup +

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/files.html b/html/setup/files.html new file mode 100644 index 00000000..89d8f3e8 --- /dev/null +++ b/html/setup/files.html @@ -0,0 +1,78 @@ + + + + + + + + + + + +MBSE BBS Setup - BBS Setup - File Areas. + + + +
+
Last update 11-Aug-2005
+

MBSE BBS Setup - BBS Setup - File Areas.

+ +

File Areas introduction.

+

+This is the setup for the file areas in which users can up and download files. +This database has fixed area numbers, the database can't be packed. +Extending the database is allways possible. One important note, +before you can set this up, you need to define the +newfiles groups. +

+If you change the path in an existing area, all files in that area are automatic +moved to the new location. +

 

+ +

File Areas Setup.

+

+

+Area Name  The area name.
+Path       The full path to the file area.
+Down Sec.  The download security level.
+Upl. Sec.  The upload security level.
+List Sec.  The security level to list the files in this area.
+Available  If this area is available. If you make an available
+           area unavailable the area is checked if there are 
+	   downloadable files in that area. If so, you can't remove 
+	   the area. If there are none you will be asked if you are 
+	   sure. After the area is made unavailable, the record is 
+	   filled with reasonable default values.
+Check New  Check this area for new files if a user logs in.
+Dupecheck  Check this area for duplicates if a user uploads a file.
+Free area  If all files in this area are free.
+Direct DL  Allow direct download from this area.
+Pwd upl.   Allow users to password protect their uploads.
+Filefind   Search in this area for filefind requests.
+Add alpha  Add .tic files alphabetic sorted or at the bottom of the list.
+File req.  Allow File Request from this area.
+BBS group  Not in use yet.
+New group  New files announce group. See Newfiles groups for more info.
+Min. age   Minimum user age to access this area.
+Password   The password for this area. If blank, no password is needed.
+DL days    How long must a file not been downloaded to (re)move it.
+FD days    How old must a file be to be (re)moved.
+Move area  The area to move the file to, if zero it is deleted.
+Archiver   The archiver to use to repack the files with.
+Upload     Alternate upload area. If a user uploads a file in this
+           area, it will be placed in the alternate area. If the
+           value is zero, the file will be placed in the current
+           file area. On CD-rom areas you must not leave this zero
+           unless you set the upload security level so high that
+           nobody can upload in this area.
+
+

+File areas setup +

+ +BackBack to BBS index  +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/global.html b/html/setup/global.html new file mode 100644 index 00000000..96ffac6a --- /dev/null +++ b/html/setup/global.html @@ -0,0 +1,439 @@ + + + + + + + + + + + +MBSE BBS Setup - Global Setup. + + + +
+
Last update 01-Mar-2007
+

MBSE BBS Setup - Global Setup

+ +In this setup you can edit all global settings for MBSE BBS. All sections will +be discussed below. +

+ +

1.1. Fidonet Aka's.

+

+Here you can enter 40 fidonet addresses. These are 5d addresses. Make sure you +group the different zone's together, strange things will happen if you don't +group them. +

+ +

1.2. Edit Registration Info.

+

+

+BBS Name   The name of your BBS
+Maildomain Your internet mail domain name (or system host.domain.com 
+             if you don't have a maildomain).
+Sysop uid  The Unix name of your Sysop account
+Sysop Fido The Fidonet name of your Sysop account
+Location   The Location of your BBS
+OLR id     The packet name for Offline mail downloads.
+Comment    A comment line for your BBS
+Origin     The default origin line for echomail
+Newuser    The default username "bbs" for new users.
+My FQDN    My real internet Full Qualified Domain Name.
+
+A note abou the last item, My FQDN. This MUST be the name that is +returned with nslookup 1.2.3.4 (use your internet IP adress there) +if you have a fixed IP address. Systems that are on a dynamic IP address and use +some sort of dyndns service may put that dyndns FQDN in there. Using this will +cause the other system to do twice as much dns resolve actions, so use this only +when needed. Another note, what you put in here has nothing to do with mail or +mail domains, that needs to be in the second option of this screen. The My FQDN +field is used by the Internet BBS Chatserver (IBC) to allow bbs systems to build +a chat network. +

+ +

1.3. Edit Global Filenames.

+

+

+System logfile    The name of the main logfile
+Error logfile     The name of the errors logfile
+Debug logfile     The name of the debug logfile
+Mgr logfile       The name of the area-/filemgr logfile
+Default menu      The name of the default main menu
+Chat logfile      The name of the logfile for chatting
+Welcome logo      The name of the BBS logo ANSI file
+
+

+ +

1.4. Edit Global Paths

+

+

+Home dirs         The path to the users home directories
+FTP base          The FTP base path, ie. /opt/mbse/ftp/pub
+Arealists         The path where area lists and filebone lists are stored
+Ext. edit         The full path and filename to the external editor
+Rules dir         The path to the directory to store area rules
+Magic's           Where the magic filerequests are kept
+DOS path          The DOS drive and path
+Unix path         The Translated DOS path in real
+LeaveCase         Leave outbound .flo filenames as is, No forces to uppercase
+
+Nodelists         The path to the nodelist directory
+Inbound           The unprotected fidonet inbound
+Prot inb.         The (password) protected fidonet inbound
+Outbound          The outbound for the main aka
+Out queue         The outbound queue for temporary files
+*.msgs            A netmail directory from where *.msg mails are tossed
+                  These are *.msg files can be created by several doors. (Not in use yet)
+Bad TIC's         Where bad TIC files are saved
+TIC queue         Where TIC files for downlinks are kept
+TMail DOS         The T-Mail 8.3 (short) base path (empty = disable)
+TMail Win         The T-Mail long filename base path (empty = disable)
+
+If you fill in the DOS path then the DOS path and Unix path are translated +to DOS paths in the flo files for outbound mail sessions. You only need this if +another mailer uses the outbound that doesn't understand Unix paths. +The DOS path is a fake, but it must match the other mailer. +Note that the TIC queue must be somewere in the Unix path, otherwise it is +impossible to create a DOS path from the path to the TIC files in that +directory. To set this up correctly is also important if you use other mailers +as well, for example binkd, or even a DOS binkly-style mailer running from +a network. All those mailer must "see" the same file attaches in the .flo +files. +

+ +

1.5. Edit BBS Configuration

+

+

+Private system    Set to true when only pre-registered users are allowed
+Exclude Sysop     True is Sysop will be invisible
+Show connect      Show connection info at logon
+Ask protocols     Ask protocol before each up/download
+Sysop level       The Sysop security level
+Password Length   The minimum password length, should be 6.
+Password Char.    The password hiding character
+Idle timeout      The idle timeout in minutes
+Login Enters      Maximum times for only enter <Enter>
+Login Attempts    Maximum login attempts
+Homedir Quota     Maximum size in MBytes for each user
+Location length   The minimum length of the location (3 in Holland!)
+Show new msgarea  Show new available message areas at logon (for OLR users)
+OLR Max. msgs.    Maximum messages to download, 0 is no limit.
+OLR Newfile days  The maximum age for newfiles in the OLR packet
+OLR Max Filereq   Maximum filerequests allowed for OLR users
+BBS Log Level     What will be logged or not the BBS program
+Utils Log Level   What will be logged or not for utilities
+Utils slowly      Should utilities release timeslices
+CrashMail level   Minimum level to allow sending netmail crash
+FileAttach level  Minimum level to allow attach files to netmail
+Min diskspace MB  At which low diskspace level utilities should stop working.
+Simult. logins    Maximum simultaneous logins allowed, 0 is unlimited, 1 is adviced.
+Child priority    Subproces nice priority, 0=high, 15=low CPU load.
+Filesystem sync   Call sync before and after execute.
+Default language  Default language (English).
+
+The minimum diskspace setting is to prevent that files get corrupted if your filesystem +is full. All drives are checked except CD-roms and floppies and the /boot directory if that +one is on a separate filesystem. Ext2, ext3, reiserfs, msdos and vfat partitions +are checked. The lowest free diskspace found counts. Default is 10 MB. +

+The Child priority sets the nice value for example zip/unzip, virus scanners +etc. Modern fast hardware will do fine with a low setting, older (pre PII) +hardware may need 15 to prevent a too heavy CPU load. +

+The filesystem sync setting is to call sync before and after the execute call, +such as when unzip is called. Almost all GNU/Linux systems need this because GNU/Linux +uses asynchronous directory changes. Since Linux 2.5.19 it should be possible to +mount filesystems synchronous. If this setting is No on asynchronous filesystems +mail and files can get corrupted. XxxxBSD systems use synchronous directory +updates and don't need this switch. If you don't know what all this is about, +leave this to the default setting. +

+Choice of default language. English is the best choice because that is the only +language that is complete in the default installation. In the user setup another +language may be used, the language set here is then used as a backup. +

+ +

1.6. User flag Descriptions.

+

+In this menu you can give the 32 users flags a meaningfull description. +

+ +

1.7. New users defaults.

+

+

+Access level      The access level and flags after registration
+Cap. Username     Capitalize the username
+Ask Sex           Ask for Male/Female
+Ask Voicephone    Ask for voice phonenumber
+Ask Dataphone     Ask for data phonenumber
+Telephone scan    Scan for duplicate numbers
+Ask Handle        Ask for handle (nickname)
+Ask Birth date    Ask for birthdate (needed for checks)
+Ask Location      Ask for users location
+Ask Hot-Keys      Ask for hot-keyed menus (default is yes)
+One word names    Allow one word names
+Ask address       Ask user for his/her home address
+Give email        Give new users email access (default is yes)
+Ask Screenlen     Ask new users to set their screen length
+Do newmail check  Yes/No or Ask new user if for newmail check at logon
+Do newfiles check Yes/No or Ask new user if for newfiles check at logon
+
+

+ +

1.8. Text Colors.

+

+Several prompts use different colors. They can be changed with the following +menu. +

+Colors setup +Colors setup +

+ +

1.9. Sysop paging

+

+For sysop chat a protocol is used to communicate with the mbtask daemon which +has a very simple IRC like chatserver. For sysop/user chat a forced channel +with the name #sysop is used. +

+Page length       The length of a page in seconds
+Page times        Maximum number of times a user may page the sysop
+Sysop area        Message from user to Sysop area number
+Ask reason        Ask reason for chat, this will be logged
+Log Chat          Log the chat conversation
+Prompt Chk.       Check at menu prompts for Sysop breaking in
+Freeze Time       Freeze users time during chat
+

+ +

1.10. Fileecho Processing.

+

+A note, when you change the number of Systems or Groups, the databases affected +will be updated automatic. +

+Keep days         How long TIC files should be kept on hold
+Hatch pwd         The internal hatch password. Make this weird.
+Drv space         The minimal free space on your disk in kilobytes
+Systems           The maximum number of connected nodes
+Groups            The maximum number of fileecho groups
+Max. dupes        The maximum number of entries in dupe database
+Keep date         Keep original filedate
+Keep netm         Keep sent netmails
+Loc resp          Respond to local created filefind messages
+Plus all          Allow filemgr +all command
+Notify            Allow filemgr notify=on/off command
+Passwd            Allow filemgr/areamgr passwd command
+Message           Allow filemgr message=on/off command
+Tic on/off        Allow filemgr tic=on/off command
+Pause             Allow filemgr pause/resume commands
+

+When you change one of the Allow filemgr settings, you also need to edit +the file /opt/mbse/english/macro/filemgr.help to reflect the new settings. +Default all these switches are set to Yes. + +

+

1.11. Edit Fidonet mail and echomail processing.

+

+Note that the first 2 mailboards must also exist in the normal mail areas if +you want to see what is in them. Here they are defined for quick access of the +tosser. For the Max. systems and groups see 1.12. If you use MBSE BBS together +with a DOS based BBS (using DOSEMU or mars netware emulator), you can set the +behaviour of the outbound to 4d. addressing instead of 5d. This option may +dissapear in the future.
+Another option is present, this is the pktdate option. This +is the full path and filename to an external program that can inspect and +correct the mail .pkt files. Originally I put this in to run pktname of Tobias +Ernst of 2:2476/418 to fix y2k problems in the incoming mail. At this time +most y2k fixes are build in, but in case you need it it's there. To make it +clear; the y2ktools written by Tobias are static compiled for GNU/Linux and they +should run on all GNU/Linux i386 versions. Until now, I still use pktdate because +it is necessary.
+ +

+Badboard          The path and filename of the bad messages
+Dupeboard         The path and filename of the duplicate messages
+Pktdate           Full path and filename of a .pkt preprocessor
+Max pkts.         Maximum Kb. of mail packets before a new one is created.
+Max arcs.         Maximum size in Kilobytes of an arcmail file
+Keep days         How many day should we keep ARCmail on hold
+Echo dupes        Maximum number of entries in the echomail dupe database
+Reject old        Reject echomail messages older then n days
+Max msgs          Default maximum number of messages in each area
+Days old          Default number of days old to keep messages
+Max systems       Maximum number of nodes to connect to echomail
+Max groups        Maximum number of echomail groups
+4d address        Use 4d. addressing (not needed you only use MBSE BBS)
+Split at          Gently split messages after n KBytes (12..60)
+Force at          Force split of messages after n KBytes (16..63)
+Plus all          Allow areamgr +all command 
+Notify            Allow areamgr notify=on/off command
+Passwd            Allow areamgr/filemgr passwd command
+Pause             Allow areamgr pause/resume commands
+

+When you change one of the Allow areamgr settings, you also need to edit +the file /opt/mbse/english/macro/areamgr.help to reflect the new settings. +Default all these switches are set to Yes. +

+A note about the splitting of messages. Some tossers can't handle +messages greater than 16 KBytes, these tossers are rare these days. Most +tossers can handle messages of 32 KBytes. To set these values on the safe +side set "Split at" to 27 and "Force at" to 31. This means that a long +newfile report will be split after 27 KBytes when a new group of files +should start in the report. If it can't find that point because a large +number of files is in the group that is just being processed, the message +split will be forced right after the file that passes the 31 KBytes limit. +I use values of 1 KBytes below maximum for overhead such as SEEN-BY and +PATH lines. Values larger then 32 KBytes is not a good idea, recent tests +in May 1999 have shown that your messages will not reach all systems +if they are larger then 32 KBytes. Splitting is used for newfiles reports +and gated news articles to Fidonet. +

+ +

1.12. Edit Internet mail and news processing.

+

+Email and news is setup here. There are three possible configurations which you +can set with 1.12.11: +

    +
  • No internet. If you don't have any connection to the internet + use this setting. Email will come from the default Fidonet UUCP gate and will be send out + via the UUCP gate. Users have email addresses like + user@f2802.n280.z2.fidonet.org Note, the username is their + Unix name when sending email. +
  • No maildomain. If have internet but don't have your own + maildomain (most dialup systems) you should use this mode. + Email will be sent via your local SMTP port, then through your + own sendmail (or whatever you use) to your ISP. + As soon as you are connected to the internet + the mail will be sent to your ISP's mailer. In your sendmail you should + define the mailer of your ISP as Smarthost. Incoming email will still come + from the UUCP gate. Users have email addresses like + user@f2802.n280.z2.fidonet.org Incoming email comes from + the default Fidonet UUCP gate. + Note, the username is their Unix name. + If you have your own maildomain, don't use this option, use the next option: +
  • Own maildomain. If you are permanent connected to the internet + either with a static or dynamic IP address use this option. Use this option + also if you have an UUCP domain and have a dialup UUCP connection. Also + you can use this for dialup if you have your own maildomain without UUCP, + you will then fetch the mail from a multidrop mailbox (POP or IMAP) and + send the mail using SMTP via the SMTP mailer of your provider.
    + If you have a dynamic IP address you can still get a DNS name from for + example dynip.com + Incoming email will come directly from the internet, but if someone sends + email via the UUCP gate it is also accepted. Users have email addresses like + user@yourbbs.domain.org. Note, the username is their + Unix name and yourbbs.domain.org must be an existing internet domain. +
+A word of wisdom from my side, configuration of the internet, ppp, sendmail etc. is not discussed +here, see the HOWTO's and other documentation that exists at +www.linuxdoc.org, it's all there. + +
+POP3 node         The POP3 node to use, should be localhost
+POP3 user@domain  Use user@domain to login in the POP3 server
+SMTP node         The SMTP node to use, should be localhost
+NNTP node         The NNTP node to use, should be localhost
+NNTP m.r.         If the NNTP server needs the Mode Reader command
+NNTP user         The username for the NNTP server if needed
+NNTP pass         The password for the NNTP server if needed
+News dupes        The number of entries for the news dupes database.
+Email aka         The Fidonet aka to use for the fidonet.org UUCP gate
+UUCP aka          The default Fidonet UUCP gate, 2:292/875@fidonet
+Emailmode         The email mode, discussed above
+News mode         Newsfeed mode, INN, rnews or UUCP.
+Articles          The default maximum newsarticles to fetch per group.
+Split at          Gently split newfiles reports after n KBytes (12..60)
+Force at          Force split of newfiles reports after n KBytes (16..63)
+Control ok        Allow news control messages to be gated
+No regate         Don't regate already gated messages
+
+In rnews mode the NNTP entries are replaced by:
+
+Path rnews        The full path and filename to the rnews binary.
+
+In UUCP mode the NNTP entries are replaced by:
+
+UUCP path         The full path to the uucppublic directory.
+UUCP node         The UUCP nodename of your ISP.
+

+ + +

+

1.13. Allfiles and Newfiles lists.

+

+These are the settings that affect the generation of newfiles and allfiles reports. +

+New days          The number of days old files are "newfiles"
+Security          The highest security level to include files in the reports
+Groups            The number of newfile groups the newfiles database can hold
+

+ +

1.14. Mailer Setup.

+

+Note that you can't disable FTS-0001 sessions as that is a mandatory session +protocol in Fidonet. There are 40 phonenumber translations present, this is for +countries with lots of telephone operators with all kind of prefixes for +carrier select functions. The setting of TCP/IP flags is important too, this +gives the information what this system will do. If you only enter IBN as TCP/IP +flags then the system will only call IBN nodes (binkp). The default is +XX,CM and TCP/IP systems (internet) should use the XX,CM,IBN,IFC flags. +If you cannot do TCP/IP connections, leave TCP/IP "phone" empty. The three +TCP/IP fields are used to give your system information via EMSI or binkp to +the other nodes. +

+Mailer logl.      The logging level for mailer sessions
+TCP/IP "phone"    The TCP/IP "phone" number (IP address or domain name)
+TCP/IP flags      The TCP/IP capability flags for TCP/IP sessions
+TCP/IP speed      The TCP/IP linespeed
+Timeout reset     The timout for normal modem commands
+Timeout connect   The timeout for waiting for connect
+Dial delay        The maximum delay between calls, minimum is 10 seconds.
+No Filerquests    Disable filerequests
+No callout        Disable callout
+No EMSI session   Disable EMSI
+No YooHoo/2U2     Disable FTS-0006 sessions
+No Zmodem         Disable zmodem protocol
+No Zedzap         Disable zedzap protocol
+No Hydra          Disable Hydra protocol
+No MD5            Disable binkp MD5 passwords
+Zero Locks OK     Allow zero byte lockfiles from another OS
+Phonetrans 1..40  Maximum 40 phone number translations
+Max. files        Maximum files to request, 0 is unlimited 
+Max. MBytes       Maximum MBytes to request, 0 is unlimited
+
+ +

1.15. Edit HTML pages setup.

+

+Here you setup the HTML pages that can be created with the +mbfile web command. These are HTML pages of your download +areas and indexes of all areas. If there are pictures in these areas +thumbnails are created if you have the convert +command available. The document root is the same as defined in your +web server. The link to ftp must be created from that directory to +your ftp base directory. To do that become root, cd to the document root +and type ln -s /var/spool/mbse/ftp files In this case the link +is called files. Note that all download areas are accesible, +there is no user authentication yet available. +

+Docs root         The path to the httpd documents root.
+Link to ftp       The link to the ftp directory.
+URL name          The URL of your webserver.
+Charset           The default character set, ISO-8859-1.
+Author name       The author name you want in the HTTP headers.
+Convert command   The graphics convert command. (ImageMagick needed).
+Files/page        The number of files to display per web page.
+Hist. limit       Limit the number of mailhistory.html lines, 0 is unlimited.
+
+

+ +

1.16. Manager flag Descriptions.

+

+In this menu you can give the 32 area-/filemgr flags a meaningfull description. +

+ +BackBack to index +HomeBack to main index +

+ + diff --git a/html/setup/hatch.html b/html/setup/hatch.html new file mode 100644 index 00000000..2027da7c --- /dev/null +++ b/html/setup/hatch.html @@ -0,0 +1,65 @@ + + + + + + + + + + + +MBSE BBS Setup - File Echo's Setup - Hatch Manager. + + + +
+
Last update 10-May-2002
+

MBSE BBS Setup - File Echo's Setup - Hatch Manager.

+ +

Introduction.

+

+Hatch files is nothing more than entering a new file into a file echo. That +file is searched for on your system in a specific directory with a certain +filemask. This can be for example a new created nodelist or an allfiles listing. +Everytime mbfido tic is run it will scan for files defined +in this setup. If such a file is found, a special .tic file is written and +stored in the mailers inbound directory. When the mbfido +starts processing .tic files, that new hatched file will be processed as if +it was received form another system. To let this work, you obviously need +an existing TIC area.

+The filenames to hatch may be long filenames as long as there are no spaces in +it. In the TIC file a short filename will be created for the old style tic +processors. The long filename is inserted in the TIC file as well. The short +filenames are created in the same way as windows does. +

 

+ +

Hatch Manager Setup.

+

+

+Mask    The path and filename mask to search for. 
+        "?" matches any character, "#" matches digits and "@" matches
+        upper or lowercase letters. Except for the "@" the test is
+	case sensitive.
+Area    The area to hatch this file in.
+Replace The filename to replace, ie. "nodelist.z*"
+Magic   The filerequest magic name, ie. "nodelist"
+Desc    The description of the file, %12 in the description
+        means copy the 12th character of the name in place.
+Dupe    Check for duplicates.
+Active  If this area is active.
+Deleted If this area must be deleted.
+Days    The days in the week to scan for this file.
+Month   The dates in the month to scan for this file.
+
+

+ +Hatch manager setup +

+ +BackBack to File Echo's Setup  +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/index.htm b/html/setup/index.htm new file mode 100644 index 00000000..03c149e6 --- /dev/null +++ b/html/setup/index.htm @@ -0,0 +1,79 @@ + + + + + + + + + + + +MBSE BBS setup. + + + +
+
Last update 01-Mar-2007
+

MBSE BBS Setup Guide

+

+ +

Invoking mbsetup

+

+As user mbse type mbsetup to start the setup +program. This version is not yet finished. There are a few items you can't +setup yet. +When you start mbsetup you will see the following screen: +

+mbsetup +

 

+ +

mbsetup main options

+

+

    +
  1. Edit Global configuration +
  2. Edit Fido networks +
  3. Edit Archiver programs +
  4. Edit Virus scanners +
  5. Edit Modem types +
  6. Edit TTY lines info +
  7. Edit Fidonet nodes +
  8. Edit BBS setup +
      +
    1. Edit Security limits +
    2. Edit Language setup +
    3. Edit BBS menus +
    4. Edit File areas +
    5. Edit Transfer protocols +
    6. Edit Oneliners +
    +
  9. Edit Mail setup +
      +
    1. Echo mail groups +
    2. Echo mail areas +
    +
  10. Edit File echo's setup +
      +
    1. Edit Fileecho groups +
    2. Edit Fileecho areas +
    3. Edit Hatch manager +
    4. Edit Magic files +
    +
  11. Edit Newfiles groups +
  12. Edit Newfiles reports +
  13. Edit Filefind setup +
  14. Edit Files database +
  15. Edit BBS users +
  16. Edit Services +
  17. Edit Domains +
  18. Edit Task Manager +
  19. Edit Routing Table +
  20. Edit Internet BBS Chat +
  21. Show software information +
  22. Create site documents +
+ +BackBack to index +
+ + diff --git a/html/setup/language.html b/html/setup/language.html new file mode 100644 index 00000000..659c63f3 --- /dev/null +++ b/html/setup/language.html @@ -0,0 +1,66 @@ + + + + + + + + + + + +MBSE BBS Setup - BBS Setup - Language Setup. + + + +
+
Last update 17-Feb-2007
+

MBSE BBS Setup - BBS Setup - Language Setup.

+ +

Language introduction.

+

+You need to define at least one language, this is the default language. +The ISO language code of the dfeault language needs to be the same as in the +global setup 1.5.24 and should be set to en. +I did this so you can make your +own local languages next to the default languages. If something is not +present in your local language, the BBS will fall back to the default +language. It is therefore wise to name all menus, macro templates and +textfiles the same for all languages used. +When you setup the languages for the first time, entries for English, Dutch, +Spanish, Galego, German, French and Chinese languages are created. +

+And important note about the ISO code, don't change this. And if you do, +then you must change the directory name under /opt/mbse/share/int +to the same name as the code here. For example for the en code the system +expects the following paths and files: +

+

+/opt/mbse/share/int/language.en
+/opt/mbse/share/int/menus/en/*.mnu
+/opt/mbse/share/int/txtfiles/en/*.ans
+/opt/mbse/share/int/txtfiles/en/*.asc
+/opt/mbse/share/int/macro/en/*
+
+

 

+ +

Language setup.

+

+

+Select      The letter to select this language.
+Name        The name of this language.
+ISO code    The 2 letter ISO code of the language.
+Available   If this language is available.
+Security    The minimum security level to select this language.
+Deleted     If this language must be deleted.
+
+

+Language setup +

+ +BackBack to BBS index  +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/magic.html b/html/setup/magic.html new file mode 100644 index 00000000..679d1db1 --- /dev/null +++ b/html/setup/magic.html @@ -0,0 +1,76 @@ + + + + + + + + + + + +MBSE BBS Setup - File Echo's Setup - Magic Files Setup. + + + +
+
Last update 10-May-2002
+

MBSE BBS Setup - File Echo's Setup - Magics Files Setup.

+ +

Introduction.

+

+Magics are special actions that you can perform on files received in a .tic +area. The actions are: copy file to a directory, unpack file in a directory, +set number of files to keep, move file to another .tic area, update magic +request alias, adopt file into another area, store in another path, +delete file (don't process it further) and execute a command. The edit screen +is different for all kinds of actions you select. More than one magic record +may exist for each area. With all these actions you can for example can setup +processing of nodediff's and unpacking nodelists in the nodelist directory. +If you use the execute command, you can only execute commands that are in the +directory $MBSE_ROOT/bin, ie. /opt/mbse/bin. +

 

+ +

Magics Setup.

+

+

+Magic     The action to perform, select with the spacebar.
+Filemask  The filemask to scan for. "?" Matches all characters,
+          "#" matches any digit and "@" any upper or lowercase letter.
+	  Except for the "@" the test is case sensitive.
+Active    If this magic is active.
+Deleted   If this magic must be deleted.
+Area      The area in which this magic is found.
+To path   The destination path. (Copy, Other path and Unpack).
+To area   The destination area. (Adopt and Move).
+Command   The command to execute. (Execute).
+Keep #    The number of files to keep. (Keep).
+Compile   Trigger "compile nodelists". (Copy, Unpack and Execute).
+
+

 

+ +

Macro's

+

+In the commandline for the magic execute command you may use macro's to replace +parts of the commandline. The following macro's are defined: +

+%F   Replaced by the full path and filename of the file.
+%P   Replaced by the full path to the file.
+%N   Replaced by the filename without dot and extension.
+%E   Replaced by the extension of the filename.
+%L   The last 2 characters of the filename extension.
+%D   The day number of the year, 3 digits.
+%C   The last 2 digits of the day number of the year.
+%A   The .tic area name.
+
+ +

+Magic setup +

+ +BackBack to File Echo's Setup  +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/mail.html b/html/setup/mail.html new file mode 100644 index 00000000..203ac77e --- /dev/null +++ b/html/setup/mail.html @@ -0,0 +1,34 @@ + + + + + + + + + + + +MBSE BBS Setup - Mail Setup. + + + +
+
Last update 29-Jan-2001
+

MBSE BBS Setup - Mail Setup.

+ +

Edit Mail Setup.

+

+The Mail Setup is split in the following sections: +

+ +

    +
  1. Echo mail groups +
  2. Echo mail areas +
+ +BackBack to index  +HomeBack to main index +
+ + diff --git a/html/setup/modems.html b/html/setup/modems.html new file mode 100644 index 00000000..47a8849f --- /dev/null +++ b/html/setup/modems.html @@ -0,0 +1,88 @@ + + + + + + + + + + + +MBSE BBS Setup - Modem types. + + + +
+
Last update 29-Jan-2001
+

MBSE BBS Setup - Modem types

+ +In the setup screen you can define all kinds of modems you use. This includes +ISDN modems. +This is not the setup of individual lines, that is in the next section, so +if you own a bbs with 5 analogue lines with only two brands and types of +modems connected, you need only to define those two types of modems here. Some +defaults are installed during initial bbs setup. +

 

+ +

Setup a modem.

+

+

+Type             The description of this modem.
+Init 1           The first modem init string.
+Init 2           The second init string (if needed).
+Init 3           The third init string (if needed).
+Reset            Not in use
+Hangup           Only needed if drop DTR doesn't work.
+Dial             The dial command.
+Info             Command to get caller-id (not tested).
+Ok               The modem "OK" response.
+Offset           The answer/connect time offset.
+Speed            The maximum modem linespeed, ie 28800.
+Available        If this modem is available.
+Deleted          If this modem must be deleted.
+Stripdash        Strip dashes from the dial command.
+Connect strings  Here you can define 20 connect strings.
+Error strings    Here you can define 10 non-connect strings.
+
+

 

+ +

Special characters

+

+

+\\               Send one backslash.
+\r               Send the CR character.
+\n               Send the LF character.
+\t               Send the TAB character.
+\b               Send the BS character.
+\s               Send a space character.
+\d               Wait one second.
+\p               Wait 0,25 second.
+\D               Send untranslated phone number.
+\T               Send translated phone number.
+
+

 

+ +

The Hangup field

+

+This is only needed if your modem doesn't hangup by dropping the DTR line for +one second. Most modems do that if &D2 or &D3 is in the init string. +

 

+ +

The Offset field.

+

+The Offset field is to calculate the cost for outgoing calls. +Analogue modems need time to establish the connection, 6 seconds is quite +common. So when you see the CONNECT BLABLA message, the phone connection +is there already 6 seconds and you are already paying for 6 seconds. This +offset is thus added to the total calculated connect time for cost +calculations. For ISDN modems this can be 1 or 0. +

 

+Modems setup +

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/newfiles.html b/html/setup/newfiles.html new file mode 100644 index 00000000..e68b9df6 --- /dev/null +++ b/html/setup/newfiles.html @@ -0,0 +1,53 @@ + + + + + + + + + + + +MBSE BBS Setup - Newfiles Reports. + + + +
+
Last update 05-Mar-2007
+

MBSE BBS Setup - Newfiles Reports.

+ +

Introduction.

+

+For each network you can define one or more newfiles reports to announce the +newfiles that arrived on your BBS. The files to include in the reports are +specified by the newfiles groups you can include or exclude for announcement. +

 

+ +

Reports Setup.

+

+

+Comment     The comment for this report.
+Msg area    The JAM message base to write the report in.
+Origin line The origin line to use.
+From name   The name to use in the "From:" field.
+To name     The name to use in the "To  :" field.
+Subject     The text to use in the "Subj:" field.
+Language    Not in use yet, but DO select! 
+Template    Not in use yet.
+Aka to use  The Fidonet aka to use in this area.
+Active      If this report is active.
+Deleted     If this report must be deleted.
+New groups  The screen to define the groups to include.
+CHRS kludge The CHRS kludge an encoding to use.
+
+

+ +Newfiles reports +

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/newgroups.html b/html/setup/newgroups.html new file mode 100644 index 00000000..5225cf3a --- /dev/null +++ b/html/setup/newgroups.html @@ -0,0 +1,48 @@ + + + + + + + + + + + +MBSE BBS Setup - Newfiles Groups. + + + +
+
Last update 30-Jan-2001
+

MBSE BBS Setup - Newfiles Groups.

+ +

Introduction

+

+The newfiles groups are there to create separate newfiles announcements for +several networks and areas. Even if you don't want to make different +announcements you still need to define at least 2 groups. One is a group +where you don't announce files in and one where you do. These groups are +linked to the BBS file areas and must be defined before you define the BBS +file areas. As you can see in the example picture I seperated the groups +in subjects. +

 

+ +

Newfiles Groups Setup.

+

+

+Name    The tag name of the group.
+Comment The comment for this group.
+Active  If this group is active.
+Deleted If this group must be deleted.
+
+

+ +Newfiles groups setup +

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/nodes.html b/html/setup/nodes.html new file mode 100644 index 00000000..38bf2f46 --- /dev/null +++ b/html/setup/nodes.html @@ -0,0 +1,415 @@ + + + + + + + + + + + +MBSE BBS Setup - Fidonet nodes. + + + +
+
Last update 21-Aug-2005
+

MBSE BBS Setup - Fidonet nodes.

+

+ +

Introduction

+

+Unlike many other bbs packages, for each node you need only one record. If you +have a relation with a node for one network with costsharing, and other +networks without costsharing you need two records for that node. For each node +you can setup the aka's, mail, files and session handshake. There are ten +screens for each node. +

 

+ +

1. Edit general setup

+

+This screen has the general information for the node. The contact info fields are +just for private use, these fields are only used in this screen. The Outbox dir is for +files to sent to the node, all file you put in there will be sent to the remote if +user mbse has read/write access to the file. Only real files are allowed, not symlinks etc. +

+ + + + + + + + + + + + + + + +
Sysop nameThe name of the system +operator. The name entered here is used in Areamgr and Filemgr messages etc.
Outbox dirPrivate extra outbound +directory for this node. Any file dropped into this directory will be sent to +the node and removed after it is sent.
Pvt. phoneContact info, node private +phone.
Pvt. faxContact info, node private +fax.
Pvt. cellphoneContact info, node +cellphone (GSM).
Pvt. e-mailContact info, node e-mail +address.
Pvt. remarkContact info, node +remark.
Route viaA route via Fido address. All +mail for this node will be send via this Aka, even mail and files for other +networks. This can be usefull if this node has internet access so you can send +everything to this node over the internet. Note that to force calling this node +via internetr, ISDN or pots can also be done by using nodelist flags override. See +section 3. This setting is more usefull to force routing via another node or +aka.
Netmail directSet "direct" flag in +netmail to this node.
Netmail crashSend netmail always "crash" +to this node.
Netmail holdPut mail on "hold" for this +node.
Pack mailShould net- and echomail be packed in +arcmail archives.
Send notifySend automatic generated +notify messages.
LanguageThe language to use for areamgr +msgs.
DeletedIf this node must be +deleted.
+

+Nodes setup +

 

+ +

2. Edit nodes aka's

+

+In this screen you can setup 20 aka's for the node. +

+Nodes aka's setup +

 

+ +

3. Edit node session

+

+In this screen you can setup the session defaults. +

+ + + + + + + + + + + + + + + + + + + + + +
Session passwdThis is the mailer +session password.
Dial commandYou can put an +override here for the normal dial command. If you leave this empty the command +from the modem setup is used.
Phone number 1An alternative phone +number to dial.
Phone number 2An alternative phone +number to dial. Use these above commands if the node has another +phone number as mentioned in the nodelist.
Nodelist flagsOverride for the +nodelist flags, the nodelist flags are completly ignored if you enter something +here so make sure all flags you need are here. All aka's of this node will use +the same flags. This can be usefull to force calling this node via the +internet and to force a certain protocol.
Inet hostnameThe FQDN hostname or +IP address of this node. This replaces the original system name from the +nodelist and this is then used to make the internet TCP/IP connection. This can +be usefull if the FQDN is not present in the nodelist.
Outbound sess.Outbound session +method, choices are Direct and Directory. Direct means normal +classic mailer connections. Directory means that everything is put in a +directory from which the other node can fetch the mail and files using ftp +protocol.
Inbound sess.Inbound session +method, choices are Direct and Directory. Direct means normal +classic mailer connections. Directory means that inbound mail and files are +expected in a directory were it is stored by the node using ftp +protocol.
No EMSIDisable EMSI +handshake.
No YooHoo/2U2Disable FTSC-0006 +handshake.
No FilerequestDisable filerequest +from this node.
Don't callDo not call this +node.
8.3 namesSet this if the node only +accepts 8.3 filenames.
No PLZDisable PLZ compression on +outgoing calls with the binkp protocol.
No GZ/BZ2Disable GZ and BZ2 +compression on outgoing calls with the binkp protocol.
No ZmodemDisable Zmodem +protocol.
No ZedzapDisable Zedzap +protocol.
No HydraDisable Hydra +protocol.
Binkp CRC32Enable CRC32 file +transfer checks.
Binkp old escSome systems followed +the wrong character escape method as published in FSP-1011 revision 3. For these +systems turn this flag on or you won't be able to send long filenames with +spaces in the name or other special characters. Such known systems are Argus and +Irex upto 2.29. Others may exist, even some older mbse versions. +
No binkp/1.1Irex from version 2.24 +at least upto 2.29 have a buggy binkp/1.1 implementation. Set this to Yes for +nodes that use one of these Irex versions and the binkp session will fall back +to the binkp/1.0 protocol.
Ign. HoldIgnore the nodelist flags +Hold or Down. Set this only if you want to call a node that is Down or Hold and +you know that you can connect it.
+

+Nodes session setup +

 

+ + +

4. Edit node - mail processing

+

+

+ + + + + +
PKT passwordThe password to insert +in .pkt files.
Check PKT pwdCheck password in +received .pkt files. If not, errors or missing passwords are only logged. If +set, errors or missing password are refused and the .pkt files are renamed to +.bad
Mail forwardNot in use +yet.
ARCmail comp.Use ARCmail 0.60 file +naming convention for out of zone mail.
ARCmail a..zAllow a..z last +character for ARCmail filenames.
+

+Nodes mail setup +

 

+ +

5. Edit mail groups

+

+Here you can tag which mail groups are available for this node. Note that all +groups are visible here, even for networks this node has no aka's in. Be +carefull not to allow a node to connect areas from networks he has no aka in. +

+Nodes mail groups +

 

+ +

6. File setup

+

+

+ + + + + + + +
Files passwordThe password for +.tic files.
Incl. messageSend a netmail +message for each file to send.
Send TIC fileSend .tic file to +this node.
Advanced TICSend advanced or +standard .tic files.
Advanced SBSend advanced Seen-By +lines, some systems can't handle this!
To line in TICSend the To line in +the ticfile. Some braindead systems will forward this line instead of processing +it and then the next system in the line will fail.
File forwardForward TIC files for +this node (not yet).
+

+Nodes files setup +

 

+ +

7. File groups

+

+The same story as for mail groups is true for the file groups. +

+Nodes files groups +

 

+ +

8. Directory session

+

+Setup in this screen is needed if you selected Inbound and or Outbound session +as Directory session. The node is then getting and bringing mail using the ftp +protocol and no normal mailer connects are being used anymore. +This may be a good solution for points, they only need a simple mailreader and a +tosser. The mail is transferred by the mbfido program, during the toss or +tic command after the normal inbound is processed mbfido will look for nodes inbound +directories to process. When mail is added to the outbound, mail for nodes with +directory sessions is not stored in the normal Binley Style Outbound but in the +session outbound directory.
+You need to setup a ftp account for this node and the best thing is to +set this up so that the other node is forced in a chroot environment, ie. make +it so that the node only sees his own directories and cannot leave that. The ftp +account needs to be a member of group bbs because mbfido needs access to the +files as well as the node. The nodes account needs also to be a member of group +bbsftp for the chroot environment. +The node needs umask 002 so that files that he puts +there will have group read/write access. During toss mbfido also stores the +files with group read/write access so that the node can remove the files when he +has fetched all files. Directory locking is supported and is compatible with +other mailers that support ftp. Here is a small sample of protftp.conf for use +with directory sessions: +

+# This is /etc/proftpd.conf for use with mbsebbs ftp mail
+# sessions and anonymous ftp access.
+# It assumes that you have a user/group "nobody" and "ftp" 
+# for normal/anonymous operation.
+# It also assumes you have a group bbsftp were ftp mail users
+# must be a member of.
+#
+ServerName			"Seaport ProFTPD server"
+ServerType			inetd
+DefaultServer			on
+#
+# Port 21 is the standard FTP port.
+Port				21
+# Umask 002 is to force new dirs and files to be group writable.
+Umask				002
+#
+# To prevent DoS attacks, set the maximum number of child processes
+# to 30.
+MaxInstances			30
+#
+# Set the user and group that the server normally runs at.
+User				nobody
+Group				nogroup
+#
+SystemLog			/var/log/proftpd
+TransferLog			/var/log/xferlog
+#
+# Anonymous ftp and members of group bbsftp have a chroot environment.
+DefaultRoot	~ bbsftp
+#
+# Normally, we want files to be overwriteable.
+<Directory /*>
+  AllowOverwrite		on
+</Directory>
+#
+# A basic anonymous FTP server configuration.
+# To enable this, remove the user ftp from /etc/ftpusers.
+<Anonymous ~ftp>
+  RequireValidShell		off
+  User				ftp
+  Group				ftp
+  # We want clients to be able to login with "anonymous" as well as "ftp"
+  UserAlias			anonymous ftp
+  #
+  # Limit the maximum number of anonymous logins
+  MaxClients			50
+  #
+  # We want 'welcome.msg' displayed at login, and '.message' displayed
+  # in each newly chdired directory.
+  DisplayLogin			welcome.msg
+  DisplayFirstChDir		.welcome
+  DisplayReadme			README
+  #
+  # Display .dotfiles and .dirs
+  LsDefaultOptions		"-a"
+  #
+  # Limit WRITE everywhere in the anonymous chroot
+  <Limit WRITE>
+    DenyAll
+  </Limit>
+  #
+  # An upload directory that allows storing files but not retrieving
+  # or creating directories.
+  <Directory incoming/*>
+     <Limit READ>
+       DenyAll
+     </Limit>
+
+     <Limit STOR>
+       AllowAll
+     </Limit>
+  </Directory>
+  #
+</Anonymous>
+
+Here are some examples to create an account, first create the extra group +bbsftp: +
+groupadd bbsftp
+
+Then create accounts like this: +
+useradd -g bbs -G bbsftp -d /opt/mbse/var/bbsftp/irex -s /bin/bash -c "FTP Mail account" irex
+
+Then give the node a password for the ftp login. Note that this account has a +shell, proftpd needs a valid shell to allow access. If the node tries to telnet +to your bbs he can't login with this account if you use mblogin, this is +because the node is not in the bbs userfile. If you system allows it, the node +can access the shell using rlogin or ssh.
+Now the items to setup for the directory sessions: +

+ + + + + + + + + + + + +
Outbound settings
Files pathThe path were to store +the outbound mail and files.
Check for lockIf we need to check +for a lockfile before adding files.
Wait clear lockWait for the lock +to clear if present or not. If set to yes and there is a lock created by the +node then mbfido will wait for maximum 10 minutes for the lock to disappear. If +set to no, mbfido skips this node and will add mail and files at a later time. +
Check lockfileThe full filename +and path of the lockfile to check for.
Create lockIf mbfido should create +a lock during the time it will add mail and files.
Create lockfileThe full filename +and path of the lockfile to create.
Inbound settings
Files pathThe path from were to +get the inbound mail and files.
Check for lockIf we need to check +for a lockfile before getting files.
Wait clear lockWait for the lock +to clear if present or not. If set to yes and there is a lock created by the +node then mbfido will wait for maximum 10 minutes for the lock to disappear. If +set to no, mbfido skips this node and will scan this directory at a later time. +
Check lockfileThe full filename +and path of the lockfile to check for.
Create lockIf mbfido should create +a lock during the time it will get mail and files.
Create lockfileThe full filename +and path of the lockfile to create.
+

+Nodes directory setup +

 

+ +

9. Security

+

+This will set the security bits for the node. These bits can be used to give +access or deny access to certain echomail areas or tic file areas. Default bit 1 +is set for each node. +

+Nodes security setup +

+ +

10. Area and File managers

+

+This screen sets names and passwords of the uplink managers, also our own +password is set here. +

+ + + + + + + +
Uplink AreaMgr programThe name of the +Areamgr program of this node. This could be AreaFix, AreaMgr etc.
Uplink AreaMgr passowrdThe password for the +Areamgr of this node.
Uplink AreaMgr is BBBSIf the uplink uses BBBS software set this +to Yes.
Uplink FilMgr programThe name of the +Filemgr progrom of this node. This could be FileMgr, Allfix, Raid etc.
Uplink FileMgr passwordThe password of the +Filemgr if this node.
Uplink FileMgr is BBBSIf the plink +uses BBBS set this to Yes.
Our Area/Filemgr passwdOur own +Area/Filemgr password for this node to send to our node.
+

+Nodes managers setup +

+ +

11. Statistics

+

+In this statistics screen you can see the mail and files flow with this +node. Values are stored for the current week, the previous week, the +current month and previous month and the overall total since you defined +this node. There are actual 12 months of statistics stored in the nodes +record, only 2 are visible. +

+Nodes statistics +

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/oneliner.html b/html/setup/oneliner.html new file mode 100644 index 00000000..c496c627 --- /dev/null +++ b/html/setup/oneliner.html @@ -0,0 +1,36 @@ + + + + + + + + + + + +MBSE BBS Setup - BBS Setup - Oneliners. + + + +
+
Last update 29-Jan-2001
+

MBSE BBS Setup - BBS Setup - Oneliners.

+ +

Oneliners.

+

+Oneliners are small quotes that can be random selected and displayed to +your users. From the same database oneliners can be selected and inserted +at the bottom of messages. With the oneliners setup you can edit, add, +delete and import oneliners. Import is done from plain ASCII textfiles, +one quote on each line. The lines should be maximum 70 characters long. +

+oneliners setup +

+ +BackBack to BBS index  +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/protocol.html b/html/setup/protocol.html new file mode 100644 index 00000000..5c91fa3a --- /dev/null +++ b/html/setup/protocol.html @@ -0,0 +1,75 @@ + + + + + + + + + + + +MBSE BBS Setup - BBS Setup - Transfer Protocols. + + + +
+
Last update 28-Nov-2004
+

MBSE BBS Setup - BBS Setup - File Transfer Protocols.

+ +

Introduction.

+

+MBSE BBS has Xmodem, Ymodem, Ymodem-1K, Ymodem-G, Zmodem and Zmodem-8K (aka +ZedZap) build in. In addition some external protocols are added to the setup but +they are disabled by default. When the bbs is started the first time, a set of +default protocols is created. The code used is based on the code from lrzsz +package wich is based in the original code written by Chuck Forsberg. +

+Ymodem is receiver driven. That means if the user has selected plain Ymodem at +the bbs and +his local client is using Ymodem-G and when the user starts a download, the files are +sent with Ymodem-G and not with plain Ymodem. With the same configuation an +upload will be sent with plain Ymodem. With downloads, the Ymodem at the bbs +will use what the client wants: 128 or 1K data blocks, crc of checksum, normal or +streaming Ymodem-G. +

+Zmodem is transmitter driven. That means if the user has selected Zmodem-8K at +the bbs and his local client is using normal Zmodem and when the user starts a +download, the download is sent with Zmodem-8K. With the same configuration an +upload will be sent with plain Zmodem. With uploads, the Zmodem at the bbs +doesn't care what is being used, it will adapt to the client program. +

+These days (2004) nobody should use Xmodem anymore but when I wrote Ymodem you +also get Xmodem because they are the same. Only with Xmodem the user has to +type in the filename to both sides. If you enable it you are on your own and you +may need to change the sources to make it really work because I didn't add +typing in the filename at the bbs. Also, Xmodem is restricted to 8.3 filenames +and the bbs uses long filenames. +

 

+ +

Transfer Protocols Setup.

+

+

+Select Key  The key the user has to press to select this protocol.
+Name        The name of this protocol.
+Upload      The full path and filename and parameters to upload files.
+Download    The full path and filename and parameters to download files.
+Available   If this protocol is available.
+Internal    If this is internal or external protocol.
+Advice      A small advice to the user shown before the transfer starts.
+Efficiency  The efficiency in percent. Has no real meaning.
+Deleted     If this protocol must be deleted.
+Sec. level  The security level a user must have to select this protocol.
+
+Some fields cannot be changed when this is an internal protocol, they are +hardcoded. +

+File transfer protocols +

+ +BackBack to BBS index  +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/route.html b/html/setup/route.html new file mode 100644 index 00000000..a7c3ea24 --- /dev/null +++ b/html/setup/route.html @@ -0,0 +1,71 @@ + + + + + + + + + + + +MBSE BBS Setup - Edit Routing Table. + + + +
+
Last update 25-Oct-2001
+

MBSE BBS Setup - Edit Routing Table.

+ +

Introduction.

+

+First an important note: normal nodes, hubs and hosts should not need this to +setup. MBSE is smart enough to do normal netmail routing using the nodelist. +There are cases when you might need this, for example if you are a RC or if you +have special routing arrangements via internet nodes. Think at least twice +before adding entries here. You can always use the mbfido test command to +check if the standard routing is enough. You should also check to see what you have +done with mbfido test if the entries in this table do what you expect +them to do. +During route tests it is wise to temporary switch on extra debug logging +with mbsetup menu 1.5.16.17 and check the information in the logfile, there is a +lot of information about the descisions that are made. +

+When you edit a route table, the entries you add might not be in the right +order, this will be done after you leave the editor. Sorting is done in order of +zone, exact nodes first, then globals. If you end the routing table with a global +route, ie. to All zones, then the standard routing isn't used anymore and only +the table is consulted. This might not be needed, most likely is that you only +need to add the routes to the non-standard nodes. The table is processed from +the first entry to the last and stops when an entry matches. If there was no +match, the default routing will be used. +

 

+ +

Edit Routing Table.

+

+When you open the table you see something like this:

+Routing table +

+The edit screen looks like this:

+Routing editor +

+Mask      The destination mask to test for.
+Action    Route to, Direct or Default.
+Dest addr The destination node in case of Route to.
+Active    If this rule is active.
+Deleted   If this rule must be deleted.
+
+

+If the Action is Route to then all mail matching the Mask will be routed +to the node setup in Dest addr. This node must be present in your setup. +If the Mask is Direct then mail to node node(s) matching the Mask will be +sent direct, not routed. If the action is Default then the nodes matching +the Mask will use the standard default routing. More actions will be added +later. +

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/security.html b/html/setup/security.html new file mode 100644 index 00000000..ec9d5358 --- /dev/null +++ b/html/setup/security.html @@ -0,0 +1,57 @@ + + + + + + + + + + + +MBSE BBS Setup - BBS Setup - Security Limits. + + + +
+
Last update 09-Feb-2002
+

MBSE BBS Setup - BBS Setup - Security Limits.

+ +

Security limits, introduction.

+

+Every BBS needs several security limits to make a difference between several +user groups. These are the twits, regular users and (co-)sysops. If you have +a donation system you will probably have more different levels. Every level a +user can have must have a record in this file. To operate MBSE BBS you need at +least 3 levels, twit with level 0, new users with the level as setup in 1.7.1, +and the sysop level as setup in 1.5.4 As said, for special usergroups you can +add more levels as you need. If a user logs in and has a level in the userbase +you didn't define here, he won't be able to login. Even the twit level needs +some access to be able to throw him out in a nice but friendly way, give him +5 minutes, 1 file to download and no more then 1 Kb so he will understand he +is not wanted. Some defaults are installed during first bbs setup. +

 

+ +

Limits setup

+

+

+Access level    The access level value.
+Maximum time    The maximum time each day. If set to zero, the user gets 24 hours a day.
+Download Kb.    Maximum Kilobytes download each day, zero is unlimited.
+Download Files  Maximum files to download each day, zero is unlimited.
+Description     The description for this level.
+Available       If this level is available.
+Deleted         If this level must be deleted.
+
+So if you completly want to disable a users ratio's, set Maximum time, Download +Kb and Download files to zero. A users session is still limited to 24 hours. +

+Security setup +

+ +BackBack to BBS index  +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/services.html b/html/setup/services.html new file mode 100644 index 00000000..c1dac842 --- /dev/null +++ b/html/setup/services.html @@ -0,0 +1,59 @@ + + + + + + + + + + + +MBSE BBS Setup - Edit Services. + + + +
+
Last update 25-Oct-2001
+

MBSE BBS Setup - Edit Services.

+ +

Introduction.

+

+Services are special mail accounts. Netmail addressed to one of these names +will be handled according to the action that is selected. Current implemented +actions are AreaMgr, FileMgr and Email. So if you name a service +Areamgr and set the action to AreaMgr then an incoming +netmail will be directed to the Areamgr function. If you define a service +listserv and set the action to Email then +and incoming netmail will be converted to email and send to the listserv +account at your host.
+

 

+ +

Edit Services.

+

+

+Name      The name of the Service.
+Type      Toggle the service type with the spacebar.
+Active    If this service is active.
+Deleted   If this service must be deleted.
+
+

+Here are some example services: +

+

+UUCP		Email
+allfix          FileMgr
+areamgr         AreaMgr                                                  
+fmail           AreaMgr                                                  
+gecho           AreaMgr                                                  
+mbtic           FileMgr                                                  
+raid            FileMgr
+
+Note: the UUCP services is needed if you are gating email! +

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/sitedoc.html b/html/setup/sitedoc.html new file mode 100644 index 00000000..84167f59 --- /dev/null +++ b/html/setup/sitedoc.html @@ -0,0 +1,36 @@ + + + + + + + + + + + +MBSE BBS Setup - Create Sitedocs. + + + +
+
Last update 09-Apr-2004
+

MBSE BBS Setup - Create Sitedocs.

+ + +

Create Sitedocs

+

+This option creates everal documents in the share/doc and share/doc/html +directories under the home directory of MBSE BBS. In the first directory is a +file called site.doc that is formatted to print. In the html directory are +a lot of html pages with cross reference links. Since these pages contain +confidentional information of your users and links, you should not make these +html pages public available, but you can browse these with a browser with open +file and point to /opt/mbse/share/html/index.html. +

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/softinfo.html b/html/setup/softinfo.html new file mode 100644 index 00000000..ec2177e4 --- /dev/null +++ b/html/setup/softinfo.html @@ -0,0 +1,30 @@ + + + + + + + + + + + +MBSE BBS Setup - Show Software Information. + + + +
+
Last update 30-Jan-2001
+

MBSE BBS Setup - Show Software Information.

+ +

Introduction

+

+This screen shows the information about the MBSE BBS software, copyright and +release policy. +

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/taskmgr.html b/html/setup/taskmgr.html new file mode 100644 index 00000000..c50f172e --- /dev/null +++ b/html/setup/taskmgr.html @@ -0,0 +1,68 @@ + + + + + + + + + + + +MBSE BBS Setup - Task Manager. + + + +
+
Last update 19-May-2004
+

MBSE BBS Setup - Task Manager.

+ +

Introduction

+

+The task manager is the daemon which controls the MBSE BBS. It watches semafore's and spawns +programs in the background. It also watches the outbound to see if there are +nodes to call. +The behaviour is setup in this screen. +

+ +

Edit Task Manager

+

+

+Mailout   Action for semafore mailout.
+Mailin    Action for semafore mailin.
+Newnews   Action for semafore newnews.
+Index 1   Nodelist compiler 1 for semafore mbindex.
+Index 2   Nodelist compiler 2 for semafore mbindex.
+Index 3   Nodelist compiler 3 for semafore mbindex.
+Msglink   Action for semafore msglink.
+Reqindex  Action for semafore reqindex.
+Ping #1   IP address of node to ping to check the internet.
+Ping #2   IP address of second node to ping to check the internet.
+Max TCP   Maximum simultaneous outgoing calls over the internet.
+Max Load  Max system load until processing is suspended.
+ZMH start Start of Zone Mail Hour in UTC time.
+ZMH end   End of Zone Mail Hour in UTC time.
+
+

+Default are the original MBSE commands filled in, but you could also call +shell scripts. +

+The two IP addresses to ping need to be IP addresses, not hostnames. This is the +most reliable way to check the connection. You should enter the IP addresses of +the nameservers of your own ISP here. One of these will always be up, so if one +of these can be reached, the internet connection is assumed to be alive. The +status of the internet connection is used to decide if it is allowed (and +possible) to call TCP/IP nodes. Calling these nodes is not depending on ZMH +unless the destination is not a CM node.
+The max load setting decides at which system load point processing of background +tasks will be suspended. The default value should be allright for machines slower then 200 +MHz or with low ram. On faster machines you may set this value higher. +

+Taskmanager setup +

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/tic.html b/html/setup/tic.html new file mode 100644 index 00000000..c187db84 --- /dev/null +++ b/html/setup/tic.html @@ -0,0 +1,36 @@ + + + + + + + + + + + +MBSE BBS Setup - File Echo's Setup. + + + +
+
Last update 29-Jan-2001
+

MBSE BBS Setup - File Echo's Setup.

+ +

File Echo's Setup.

+

+The File Echo's Setup is split in the following sections: +

+ +

    +
  1. File echo groups +
  2. File echo areas +
  3. Hatch manager +
  4. Magic files +
+ +BackBack to index  +HomeBack to main index +
+ + diff --git a/html/setup/ttyinfo.html b/html/setup/ttyinfo.html new file mode 100644 index 00000000..1438d48e --- /dev/null +++ b/html/setup/ttyinfo.html @@ -0,0 +1,68 @@ + + + + + + + + + + + +MBSE BBS Setup - TTY Lines. + + + +
+
Last update 08-Oct-2005
+

MBSE BBS Setup - TTY Lines.

+ +

Introduction.

+

+For each modem or ISDN line your bbs has you must setup a tty line. +This also includes console lines (for local login). Since version 0.81.0 +you don't need to setup network lines anymore, these are now buildin. +If a call comes in over a (modem or ISDN) tty you didn't define, that call is refused. +

+One thing about the portspeed, this is only needed for devices connected to +serial ports such as modems and external ISDN adapters. +For internal ISDN cards this should be set to zero. If you set it to some other value, +things still work but you will get error messages in the logs. +

+A note about the EMSI flags, this must match your modem capabilities, if +not dialout will not work correct. It is used to see which line to use to call +a certain node. If you add the X75 flag on an analogue line, your system will try to +call ISDN nodes using an analogue modem. So these are not your nodelist flags as they +may represent combined ISDN and analogue flags but the flags that belong to a modem. +

 

+ +

Setup a line.

+

+

+Comment      A description for this line.
+TTY device   The tty device name without /dev/
+Phone nr.    The phone number on this line.
+Line Speed   The maximum line speed for this line.
+Fido Flags   The EMSI flags for this line, include your modem flags here!
+Line Type    Can be POTS, ISDN, Network and Local.
+Available    Is this line available for use.
+Honor ZMH    Deny users during ZMH on this line.
+Deleted      If this line must be deleted.
+Callout      Allow calling other systems from this line.
+Portspeed    The "locked" modemspeed, 0 to 4000000 baud, only for serial ports.
+Modemtype    The modem connected to this line.
+EMSI name    The EMSI name presented for this (modem) line.
+
+

 

+ +

Some examples.

+

+Overview of tty ports

+A analogue modem port at COM1

+A ISDN channel

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/users.html b/html/setup/users.html new file mode 100644 index 00000000..9e468640 --- /dev/null +++ b/html/setup/users.html @@ -0,0 +1,106 @@ + + + + + + + + + + + +MBSE BBS Setup - BBS Users. + + + +
+
Last update 08-Nov-2005
+

MBSE BBS Setup - BBS Users.

+ +

Introduction.

+

+This screen lets you edit some settings of the BBS users. Note that the users +database will never be packed and users will always keep their record number. +If a user is deleted the record will be blanked. New users will get a blank +record if it exists, otherwise the database will be expanded. The reason for +this is the LastRead pointers of the message areas, BBS systems who do it +in another method mostly can't keep track of LastRead pointers and records, +and they mix all users LastRead pointers. +Fields that can be changed by the users themselves are in the second screen. +

 

+ +

Edit User

+

+

+Full Name    The full (Fidonet) name of the user.
+Security     The security level of the user.
+Expirydate   The expiry date of the user DD-MM-YYYY.
+Expiry Sec   The security level the user gets after expiry.
+Unix uid     Displays the unix name of the user.
+1st login    Displays the date of the first login.
+Last login   Displays the date of the last login.
+Pwdchange    Displays the date of the last password change.
+Credit       The users credit.
+Hidden       If the user is hidden from listings etc.
+Deleted      User must be deleted.
+No Kill      User can never be deleted.
+Comment      The comment about this user.
+Locked       Locked out of the BBS.
+Guest        Is this a "guest" account on/off.
+Ext Info     Send ^aKLUDGES with BlueWave downloads.
+Email        If this user has an email address.
+Calls        Displays the number of calls.
+Downlds      Displays the number of downloads.
+Down Kb      Displays the number of Kilobytes downloaded.
+Uploads      Displays the number of uploads.
+Upload Kb    Displays the number of Kilobytes uploaded.
+Posted       Displays the number of messages posted.
+Time left    Show the time left in minuts and reset the time.
+Screen 2     Go to next setup screen.
+
+Watch out when changing the unix userid of the user, you need to change the +system password file and the users home directory manually. +

+User editor +

+ +

Edit User Private Settings

+

+

+Handle       The nickname of the user.
+Location     The location of the user.
+Address 1    The address of the user line 1.
+Address 2    The address of the user line 2.
+Address 3    The address of the user line 3.
+Voicephone   The voice phonenumber of the user.
+dataphone    The data phonenumber of the user.
+Birthdate    The birthdate of the user DD-MM-YYYY.
+Password     Change password for this user.
+Sex          Users sex, male or female.
+Protocol     The selected file transfer protocol.
+Archiver     The selected archiver.
+Charset      The users preffered character set.
+Screenlen    The length (lines) of the users screen.
+Language     The language the user uses.
+Hotkeys      Hotkeys on/off.
+Color        Color on/off.
+Fs Chat      Fullscreen Chat on/off.
+Silent       Do not disturb on/off.
+CLS          Sent clearscreen codes on/off.
+More         More prompt on/off.
+Editor       Select message editor.
+MailScan     Scan for new mail at logon on/off.
+ShowNews     Show "news" screens on/off.
+NewFiles     New files scan at logon on/off.
+Emacs        Use Emacs (or Wordstar) FS edit shortcut keys.
+
+

+ +User editor +

+ +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/setup/virscan.html b/html/setup/virscan.html new file mode 100644 index 00000000..3e914905 --- /dev/null +++ b/html/setup/virscan.html @@ -0,0 +1,105 @@ + + + + + + + + + + + +MBSE BBS Setup - Virus scanners. + + + +
+
Last update 17-Feb-2008
+

MBSE BBS Setup - virus scanners

+ +Once upon a time there was no DOS and no computer virusses. But since DOS was +invented as a small OS which was easily extensible, virus writers saw their +chance to easy spread their hacks. Although running a GNU/Linux system is +relative safe, most of the files that you have available on your bbs +are DOS/Windows based programs. And before you put them available for download, they +should be checked for virusses. Macro virusses are a relative new danger, +this can also hurt Unix/Linux users.

+There are several scanners for GNU/Linux available. Default only four of them +are setup. You may consult +http://www.openantivirus.org for more scanners mentioned in a mini-FAQ +maintained by Rainer Link. +

+When you configured the sources and build mbse, the configure script searched +for excisting scanners. When mbsetup was run the first time, when mbtask was +started, the scanners found on your system are already configured with the +right paths and enabled. +

+The following scanners are default installed in the setup: +

+ +

    +
  • NAI Virus Scan (uvscan) for Unix (GNU/Linux) made by +Network Associates, USA. +Not free for personal use. Uses the same DAT files as for Windows and DOS. +
  • AntiVir/Linux made by +H+BEDV Datentechnik GmbH. +Can also be installed in sendmail or Postfix to scan incoming +and outgoing email. This may be a good idea if you run a email gateway. +This version can be registered for personal use. +
  • F-PROT available from http://www.frisk.is. There is a free version for personal use. +
  • Clam AntiVirus is a GNU licensed virus scanner for Unix. It +is available from www.clamav.net. It has one +slight disadvantage over other scanners (or just the opposite), when it tests a +file with the Eicar testvirus signature it will report that and triggers the +virus detection. This happens with NAI DAT files. +
+

+As soon as you have made one scanner available in the setup and you receive files +in tic areas where the scan flag is set, then these files will be checked. +As soon as one of the scanners detects a virus the received file will not be imported. +Uploads from users will be checked with the installed virus scanners as well. +

 

+ +

Stream scanners

+

+A new feature is stream scanning. In this setup you need a virus scanner loaded as a daemon and it +must listen to a TCP/IP port to receive commands and data to scan. Currently this is only implemented +for ClamAV, but F-Prot may follow. First you need a machine where clamd is running, this +can be a remote machine but of course also the bbs machine itself. ClamAV needs to be configured +so that it listens to a TCP/IP port, and depending on other things on the local socket too. +Recent versions of ClamAV can do both together. Change your /etc/clamav/clamd.conf to +contain the following lines: +

+# Path to a local socket file the daemon will listen on.
+# Default: disabled (must be specified by a user)
+LocalSocket /var/run/clamav/clamd
+
+# Remove stale socket after unclean shutdown.
+# Default: no
+#FixStaleSocket yes
+
+# TCP port address.
+# Default: no
+TCPSocket 3310
+
+# TCP address.
+# By default we bind to INADDR_ANY, probably not wise.
+# Enable the following to provide some degree of protection
+# from the outside world.
+# Default: no
+#TCPAddr 127.0.0.1
+
+I left the comment for the TCPaddr, but it's up to you to protect the clamd server. After you +restart clamd test the connection with telnet host.where.clamd.runs 3310, +type VERSION followed by a return and you should see the ClamAV version. If that works, you can enable +the ClamAV stream scanner in mbsetup and disable the old commandline scanner.
+So why would you use this. It's about 10 times faster then the commandline scanner. +

+ + +BackBack to index  +HomeBack to main index +

+ + diff --git a/html/upgrade.html.in b/html/upgrade.html.in new file mode 100644 index 00000000..771cbd30 --- /dev/null +++ b/html/upgrade.html.in @@ -0,0 +1,96 @@ + + + + + + + + + + + +Upgrade MBSE BBS. + + + +
+
Last update 02-Sep-2007
+

Upgrade MBSE BBS

+ +

Introduction.

+

+First of all, if you upgrade from a previous version of MBSE BBS, +read all the ChangeLog entries from the version you are currently +running upto the new @VERSION@ version you are installing. +Then make a backup of at least all files in /opt/mbse/bin and /opt/mbse/etc. +

 

+ + +

Install the source.

+

+Login as user mbse. Yes, very important, login as user mbse. +While in mbse's home directory (/opt/mbse) unpack the distribution archives: +

+tar xfvj /path/to/mbsebbs-@VERSION@.tar.bz2
+
+You now have the subdirectory with sources in the right place. +Next build the binaries and install them using the following commands: +
+cd ~/mbsebbs-@VERSION@
+make clean
+./configure
+make
+su        important, do not use "su -"
+password: enter root password here
+make install
+
+Ubuntu users should do: +
+cd ~/mbsebbs-@VERSION@
+make clean
+./configure
+make
+sudo make install
+
+The last part of the installation procedure shows you the location of the bbs +startup script that is added to your system. Remember this one for a moment. +

+Now restart the bbs (still as root) by executing the startup +script you just saw on the screen followed by a space and the word reload or restart, +this depends on the distribution you use. There are also distributions that must use the startup +script twice, once with stop and then start as parameter. +For example: +

+/etc/rc.d/init.d/mbsed reload
+exit
+
+Ubuntu users do: +
+sudo /etc/init.d/mbsebbs restart
+
+This will close the bbs, kill mbtask, start the new mbtask and open +the bbs again for use. At this point you may need to update some configuration settings +with mbsetup. Read the ChangeLog for the details. The ChangeLog may also describe a +different restart procedure if this is needed. +

 

+ +

Other updates

+

+Not everything is updated during the upgrade, only the binaries. Normally this is enough. +However it may be that the example menus, macro templates are updated in the distribution. +Because these files may have some very personal changes, these files are not overwritten. +You can force that, in the subdirectory ~/mbsebbs-@VERSION@/examples type +

+make help
+
+to see what you can force to update. But carefully taking over the changes may be better. +
+In the directory /opt/mbse/bin and /opt/mbse/etc are new scripts installed. They have the +extension .new and you need to examine these to see if you can simply copy these over +your current ones. +

+Back to IndexBack to Index + +

+ + diff --git a/html/ups.html b/html/ups.html new file mode 100644 index 00000000..dbba42a7 --- /dev/null +++ b/html/ups.html @@ -0,0 +1,45 @@ + + + + + + + + + + + +Using UPS semafore's. + + + +
+
Last update 08-Jun-2001
+

MBSE BBS - Using UPS semafore's.

+ +If you have a UPS and you are able to let your UPS software create semafore's when powerfail conditions +occur then read on. The MBSE BBS taskmanager and a lot of utilities will act on two special semafore's, +they are: + +
    +
  1. upsalarm, this semafore should be set when there is no mains power, but there is enough + power left to operate your system. All background tasks will be suspended as long as this condition + is true. If the power comes back, the UPS software should remove this semafore. +
  2. upsdown, this semafore should be set when the UPS sofware signals your system to go down. + This is a fatal condition and there is no way back. Even if the power comes back your system should + shutdown and the UPS will disconnect the power to your system. After a while it will turn the power on + again and your system boots. MBSE BBS will if this semafore is seen kick users out of the bbs, and the + system shutdown script will try to close MBSE BBS as quick as possible. Normal the close timeout is + one hour to let users normal finnish what they were doing, now it is only 30 seconds and if they were + not logged out, they will be disconnected anyway. +
+I know not all UPS software can do this but most UPS software is open source so you can change it to create +these semafore's. It is not a problem that UPS semafore's still exist if the systems boots, the MBSE BBS +startup scripts will remove them before the bbs is started. +

 

+ + +BackGo Back +

+ + diff --git a/lang/.cvsignore b/lang/.cvsignore new file mode 100644 index 00000000..256af178 --- /dev/null +++ b/lang/.cvsignore @@ -0,0 +1 @@ +language.nl language.en filelist language.gl language.de language.es language.fr language.zh diff --git a/lang/Language.xref b/lang/Language.xref new file mode 100644 index 00000000..7291b9bb --- /dev/null +++ b/lang/Language.xref @@ -0,0 +1,480 @@ +0 user.c newuser.c |Please enter your First and Last name: +1 user.c |Please enter your Last name: +2 user.c |Disconnecting user ... +3 user.c |Scanning User File ... +4 user.c YN|Did you spell your name correctly? [Y/n] +5 newuser.c |You need to login again with the name: +6 user.c |This is a PRIVATE System. Type "off" to leave +7 filesub.c |Mark file number or press to stop +8 user.c filesub.c |Password: +9 user.c |Maximum login attempts have been exceeded ... +10 user.c |Either your NAME or PASSWORD is incorrect +11 mail.c email.c HR|Export to (H)ome or (R)ules directory: +12 mail.c email.c |Message exported to rules directory as +13 dispfile.c |No rules found for this area +14 mail.c |You are not allowed to delete that message +15 change.c |Offline Reader: Extended Info turned ON +16 change.c |Offline Reader: Extended Info turned OFF +17 file.c |This is not a plain textfile. +18 user.c |You may only login +19 user.c |times at the same time +20 door.c |The door is in use by another user, try again later +21 mail.c YN| Is this correct [y/N]: +22 mail.c |Could not parse +23 change.c |Select your preferred character set +24 change.c |Select character set (Enter to Quit): +25 change.c |Character set now set to: +26 newuser.c YN|Check for new mail at login [Y/n]: +27 newuser.c YN|Check for new files at login [Y/n]: +28 page.c |Enter a short reason for chat +29 chat.c |The Sysop cannot use the bbs to chat! Use mbmon to chat +30 chat.c |Sorry, the chatserver is not available +31 mbsebbs.c |line +32 .c | +33 .c | +34 .c | +35 .c |In use for internationalization +36 .c |In use for internationalization +37 newuser.c |MBSE Bulletin Board System - NEW USER REGISTRATION +38 newuser.c |Use this name: +39 newuser.c |Please enter new password : +40 newuser.c user.c |Please enter password again : +41 newuser.c user.c |Your passwords do not match! Try again. +42 newuser.c change.c user.c |Your password must contain at least +43 newuser.c change.c user.c |characters! Try again. +44 | +45 newuser.c change.c |Please enter you Voice Number +46 mail.c |Message exported to your private directory as: +47 newuser.c change.c |Please enter a proper phone number +48 newuser.c change.c |Please enter you Data Number +49 newuser.c change.c |Please enter your location: +50 newuser.c |Please enter a longer location +51 newuser.c MF|What is your sex? (M)ale or (F)emale: +52 newuser.c |Male +53 newuser.c |Female +54 newuser.c |Please answer M or F +55 newuser.c |Unknown +56 newuser.c change.c |Please enter your Date of Birth DD-MM-YYYY: +57 newuser.c |Sorry you entered this year by mistake. +58 newuser.c |Please enter the correct date format +59 chat.c |*** Sysop is starting chat *** +60 chat.c |*** Sysop has terminated chat *** +61 mail.c misc.c file.c YN=|More (Y/n/=) +62 newuser.c YN|Would you like Hot-Keyed menus? [Y/n]: +63 newuser.c |Please answer Y or N +64 | +65 newuser.c |None +66 offline.c |Tag Offline Reader message areas +67 newuser.c |Your user account has been created: +68 newuser.c |Login Name : +69 newuser.c |Password : +70 newuser.c |not displayed +71 newuser.c |New user registration completed. +72 misc.c |Could not find +73 change.c |Old Location: +74 change.c |Please enter a longer location (min +75 | +76 | +77 mail.c |Message doesn't exist +78 change.c |News bulletins turned ON +79 change.c |News bulletins turned OFF +80 | +81 | +82 mail.c |Private message, not owner +83 change.c |Please enter the correct date format +84 misc.c |Todays Callers to +85 misc.c |# User Name Device TimeOn Calls Location +86 change.c |Can't open archiver file. +87 change.c |Select your preferred archiver +88 change.c |Select Archiver (Enter to Quit): +89 change.c |Archiver now set to: +90 .c | +91 .c | +92 .c | +93 .c | +94 .c | +95 .c | +96 .c | +97 .c | +98 .c | +99 .c | +100 .c | +101 .c | +102 .c | +103 .c | +104 .c | +105 .c | +106 .c | +107 signature.c |Edit message signature +108 .c |The FROM, TO and SUBJECT fields are optional. +109 .c | From: +110 .c | To: +111 .c |Subject: +112 .c | Type up to 4 lines 74 Characters per line +113 signature.c |Functions available: +114 signature.c LREAS|(L)ist, (R)eplace text, (E)dit line, (A)bort, (S)ave +115 signature.c |Select: +116 signature.c file.c |Aborting... +117 signature.c |Returning to +118 signature.c |Edit which line: +119 signature.c |Line does not exist. +120 change.c |Old Password: +121 change.c |New password: +122 change.c |Confirm new password: +123 change.c |Passwords do not match! +124 change.c |Password Change Successful +125 change.c |Old password incorrect! +126 funcs.c |User List +127 funcs.c |Enter Username search string or (Enter) for all users: +128 funcs.c |Name Location Last On Calls +129 funcs.c |Could not find search string ... +130 timecheck.c |Time limit exceeded ... disconnecting! +131 filesub.c YN=M|More (Y/n/=) M=Mark +132 filesub.c |Scanning +133 filesub.c |with +134 funcs.c |TIME STATISTICS for +135 funcs.c mbsebbs.c |on +136 funcs.c |Current Time : +137 funcs.c |Current Date : +138 funcs.c |Connect time : +139 funcs.c |Time used today : +140 funcs.c |Time remaining today : +141 funcs.c |Daily time limit : +142 mail.c |You have +143 mail.c YN|messages, read your mail now? [Y/n]: +144 mail.c |You have no new mail in your mail box ... +145 change.c |Hotkeys are now ON +146 change.c |Hotkeys are now OFF +147 funcs.c |On +148 funcs.c |Off +149 newuser.c |User name already exists +150 mail.c |Checking your mail box ... +151 page.c |MBSE BBS Chat +152 page.c |The SysOp is currently speaking to somebody else. +153 page.c |Try paging him again in a few minutes ... +154 page.c |You have paged the Sysop the maximum times allowed. +155 page.c |Sysop currently is not available ... please leave a comment +156 mail.c |Posting message in area: +157 mail.c |From : +158 mail.c |To : +159 mail.c |Verifying user ... +160 mail.c |User not found. Try again, or (Enter) to quit +161 mail.c |Subject : +162 mail.c YN|Abort Message [y/N] ?: +163 mail.c YN|Private [y/N]: +164 lineedit.c |Begin your message now, Blank line to end +165 lineedit.c |Maximum of 60 lines, 73 characters per line +166 lineedit.c |Maximum message length exceeded +167 lineedit.c |Functions available: (Current Message: +168 lineedit.c |Lines) +169 lineedit.c |L - List message S - Save message C - Continue message +170 lineedit.c |Q - Quit message D - Delete line I - Insert line +171 lineedit.c |T - Text edit E - Edit line R - Replace line +172 lineedit.c LSCQDITERZ|Z - Center line +173 lineedit.c |Select +174 lineedit.c |Continue +175 lineedit.c file.c |Delete +176 lineedit.c |Delete starting at line +177 lineedit.c |Aborted. +178 lineedit.c |Please enter a number in the range of +179 lineedit.c |Delete ending at line +180 lineedit.c |Edit +181 lineedit.c |Enter line # to edit +182 lineedit.c |Insert +183 lineedit.c |Enter line # to insert text before +184 lineedit.c |List +185 lineedit.c |Enter line # to replace +186 lineedit.c signature.c |Line reads: +187 lineedit.c |Unchanged. +188 lineedit.c |Line now reads: +189 lineedit.c mail.c |Quit +190 lineedit.c YN|Are you sure [y/N]: +191 lineedit.c |Message aborted. +192 lineedit.c |No +193 lineedit.c |Text Edit +194 lineedit.c |Enter line # to edit +195 lineedit.c signature.c |Text to replace : +196 lineedit.c signature.c |Replacement text : +197 lineedit.c |Line now reads: +198 lineedit.c |Save +199 filesub.c |Possible VIRUS found! +200 filesub.c offline.c |Ok +201 filesub.c offline.c |Unpacking archive +202 mail.c |Saving message to disk +203 lineedit.c |Enter line # to center +204 lineedit.c |Line is maximum length and cannot be centered +205 mail.c |There are no messages in this area. +206 mail.c |Date : +207 mail.c file.c YN=|More (Y/n/=/Area #): +208 mail.c |To : +209 mail.c |From : +210 mail.c |Subject : +211 mail.c |Next reply: +212 mail.c |Reply to: +213 mail.c |messages in +214 mail.c ANLREQDX|(A)gain, (N)ext, (L)ast, (R)eply, (E)nter, (D)elete, (Q)uit, e(X)port +215 mail.c |(A)gain, (N)ext, (L)ast, (R)eply, (E)nter, (Q)uit, e(X)port +216 mail.c |Next +217 filesub.c offline.c |ERROR +218 mail.c RNQ|(R)eply, (N)ext, (Q)uit: +219 mail.c |Enter to keep Subject. +220 mail.c |# From To Subject +221 mail.c |Message area +222 mail.c |contains +223 mail.c |messages. +224 mail.c |Please enter a message between +225 mail.c |Message number [ +226 mail.c |Area Type description Messages Personal +227 mail.c |thread +228 offline.c |Enter the name of the conference, or ? for a list: +229 offline.c |Conference Area Msgs Description +230 mail.c |Deleting message +231 mail.c | Message Areas +232 file.c mail.c |Select Area: +233 file.c mail.c |Invalid area specified - Please try again ... +234 file.c mail.c |Password is incorrect +235 file.c mail.c |Password is correct +236 file.c |You don't have enough security to list this area +237 filesub.c |Can't open file database for this area +238 filesub.c file.c |Uploaded by: +239 file.c |D E L E T E D +240 | +241 mail.c YN|Node not known, continue anayway [y/N]: +242 file.c |Total Files: +243 filesub.c |FATAL: Unable to open areas database +244 filesub.c |You do not have enough access to download from this area. +245 file.c mail.c |Please enter filename: +246 file.c |No filename entered, Aborting. +247 file.c offline.c |Illegal Filename! +248 file.c |Sorry that file is unavailable for download +249 file.c filesub.c |You have +250 file.c filesub.c |extra download KBytes. +251 filesub.c |You do not have enough time to download that file. +252 filesub.c |You do not have enough bytes to download " +253 filesub.c |You must upload before you can download. +254 filesub.c |Kilobytes currently available: +255 file.c |Checking your marked downloads, please wait... +256 offline.c |Untag Offline Reader message areas +257 filesub.c |Found FILEID.DIZ in +258 file.c |No files marked for download. +259 .c | +260 offline.c |You have selected the following Conference(s): +261 file.c |Filename Size Date +262 change.c |Protocol: Can't open protocol file. +263 change.c |Select your preferred file transfer protcol +264 change.c |Select Protocol (Enter to Quit): +265 change.c |Invalid selection, please try again! +266 change.c |Protocol now set to: +267 file.c |Enter keyword to use for Search: +268 file.c |File Search by Keyword +269 file.c |Accepts wildcards such as : *.zip, *.gz, *.* +270 | : *.zip is the same as .zip +271 file.c |Enter filename to search for : +272 file.c |File Search by Filename +273 file.c YN|Search for new since your last call [Y/n]: +274 file.c |Enter new date to search for [DD-MM-YYYY]: +275 file.c |File Search by Date +276 .c | +277 offline.c |Offline Reader Download +278 file.c |You do not have enough access to upload to this area. +279 file.c |You have not enough diskspace free to copy this file +280 file.c |files( +281 file.c |bytes) marked for download. +282 file.c |The file already exists on the system +283 file.c offline.c |Please start your upload now ... +284 filesub.c |Upload was unsuccessful for: +285 filesub.c YN|Do you want to password protect your upload ? [y/N]: +286 filesub.c |REMEMBER: Passwords are "CaSe SeNsITiVe!" +287 filesub.c |Please enter description of file +288 filesub.c |Your upload time has been returned to you. Thank you for your upload! +289 file.c |Start copy: +290 file.c |Can't open directory for listing: +291 file.c |Home directory listing for +292 file.c |Please enter filename to delete: +293 file.c |Sorry you may not delete hidden files ... +294 file.c |Unable to delete file ... +295 file.c |Invalid filename, please try again ... +296 file.c |File does not exist, please try again ... +297 offline.c |Forum Description Msgs. Pers. +298 file.c | File Areas +299 file.c |Please enter Area Password: +300 bbslist.c |Adding BBS +301 bbslist.c |BBS Name: +302 bbslist.c |Response needed ... +303 bbslist.c |Phone Number: +304 bbslist.c |Sysop Name: +305 bbslist.c |BBS Software: +306 bbslist.c |Storage (GigaByte): +307 bbslist.c |Speeds: +308 bbslist.c YN|Would you like to add a extended discription? [Y/n]: +309 bbslist.c |Please a enter discription for +310 bbslist.c |BBS Listing +311 bbslist.c |# BBS Name Number Software GigaByte Speed +312 bbslist.c |Search for a BBS +313 bbslist.c |Please enter 3 letters of BBS to search for: +314 bbslist.c |I need at least 3 letters ... +315 bbslist.c YN|View this BBS? [Y/n]: +316 bbslist.c |Could not find the BBS Listed ... +317 bbslist.c |Show a BBS +318 bbslist.c |Please enter number to list: +319 bbslist.c oneline.c |Record does not exist +320 bbslist.c | Record : +321 bbslist.c | BBS Name : +322 bbslist.c | Number : +323 bbslist.c | Software : +324 bbslist.c | GigaByte : +325 bbslist.c | Speeds : +326 bbslist.c | Sysop Name : +327 bbslist.c | Available : +328 bbslist.c | Date of Entry : +329 bbslist.c | Entry Name : +330 bbslist.c |Delete BBS +331 bbslist.c oneline.c mail.c |Please enter number to delete: +332 bbslist.c oneline.c |Record +333 bbslist.c oneline.c |does not belong to you. +334 bbslist.c oneline.c |already marked for deletion +335 bbslist.c |marked for deletion +336 bbslist.c |The Sysop will purge the list once he has +337 bbslist.c |seen you have marked a record for deletion. +338 offline.c |Total messages found: +339 menu.c |Unknown Menu Command! +340 signature.c |Saving... +341 oneline.c |MBSE BBS Oneliners will randomly appear on the main menu. +342 oneline.c |Obscene or libellous oneliners will be deleted!! +343 oneline.c |Please enter your oneliner below. You have 75 characters. +344 oneline.c |Oneliner added +345 oneline.c | # A Date User Description +346 oneline.c | # Description +347 oneline.c |Please enter number to list: +348 mbsebbs.c |Connected from +349 file.c |File(s) : +350 file.c |Size : +351 file.c |Protocol : +352 file.c |Updating download counter, please wait ... +353 file.c |Failed! +354 file.c |Bytes +355 file.c | # Area Active Size Cost File +356 file.c lineedit.c |Yes +357 file.c |No +358 file.c TE|(T)oggle active, (E)rase all, (ENTER) to continue: +359 file.c |Enter file number, 1.. +360 filesub.c |Marked: +361 file.c |No files tagged. +362 lineedit.c |Replace +363 newuser.c |Loading BBS, please wait ... +364 offline.c |New or deleted mail areas at +365 offline.c |Area State Type Description +366 change.c |New Mail check is now ON +367 change.c |New Mail check is now OFF +368 file.c |Delete file: +369 file.c YN|Are you Sure? [Y/n]: +370 change.c |New Files check is now ON +371 change.c |New Files check is now OFF +372 change.c |Now using the +373 change.c 12|Select: 1) Fullscreen editor, 2) External editor +374 offline.c |No messages found to download! +375 funcs4.c |Press (Enter) to continue: +376 lineedit.c |Center +377 offline.c |Too much messages. Only the first +378 change.c |Select your preferred language +379 change.c |Select Language: +380 change.c |Language now set to: +381 funcs4.c |The system will now ask you for a "Unix Account" +382 funcs4.c |Your "Unix Account" is created, you may use it the next time you call. +383 funcs4.c |Please enter a login name (Maximum 8 characters) +384 funcs4.c |ie. John Doe, login = jdoe +385 funcs4.c |login > +386 funcs4.c |That login name already exists, please choose another one. +387 change.c |Line +388 change.c |Fullscreen +389 change.c |External +390 change.c |Editor +391 offline.c |New +392 offline.c |Local +393 offline.c |Netmail +394 offline.c |Echomail +395 offline.c |News +396 offline.c |E-Mail +397 offline.c |Del +398 funcs4.c |Jan +399 funcs4.c |Feb +400 funcs4.c |Mar +401 funcs4.c |Apr +402 funcs4.c |May +403 funcs4.c |Jun +404 funcs4.c |Jul +405 funcs4.c |Aug +406 funcs4.c |Sep +407 funcs4.c |Oct +408 funcs4.c |Nov +409 funcs4.c |Dec +410 newuser.c timeout.c |Autologout: idletime reached. +411 offline.c |will be packed! +412 newuser.c change.c |Enter your handle (Enter for none): +413 user.c |You are now ready to use the bbs +414 exitinfo.c |Callers On-Line to +415 exitinfo.c |Name Device Status Location +416 change.c |Do not disturb turned OFF +417 change.c |Do not disturb turned ON +418 exitinfo.c |Browsing +419 exitinfo.c |Downloading +420 exitinfo.c |Uploading +421 exitinfo.c |Msg Section +422 exitinfo.c |External Door +423 exitinfo.c |Chatting +424 exitinfo.c |Listing Files +425 offline.c YN|Do you want to download these messages [Y/n]? +426 exitinfo.c |Banking Door +427 exitinfo.c |Safe Door +428 exitinfo.c |WhosOn List +429 exitinfo.c |Offline Reader +430 exitinfo.c |Please enter username to send message to: +431 exitinfo.c |Sorry, there is no user on +432 exitinfo.c |doesn't wish to be disturbed +433 exitinfo.c |Please enter in message to send (Max 76 Characters) +434 misc.c |** Message ** from +435 user.c |Your password is expired, new password : +436 funcs.c |Press ENTER to continue +437 mail.c |Posting not allowed, this area is Read Only! +438 change.c 1|Select: 1) Fullscreen editer +439 offline.c |Offline Reader Upload +440 offline.c |Invalid packet received +441 offline.c |Unknown compression type +442 offline.c file.c |Archiver not available +443 offline.c |Unknown type mailpacket +444 offline.c |BlueWave Offline download +445 offline.c |Preparing packet +446 offline.c |Packing with +447 offline.c |Download failed +448 offline.c |Download successfull +449 offline.c |Updating lastread pointers +450 offline.c |Processing BlueWave reply packet +451 offline.c |ERROR in packet +452 offline.c |Import messages +453 offline.c mail.c |No Write access to area +454 offline.c |Messages imported +455 offline.c |Processing Offline Configuration +456 offline.c |Message areas selected +457 offline.c |Processing file requests +458 offline.c |QWK Offline Download +459 offline.c |Processing QWK reply packet +460 offline.c |ASCII Offline Download +461 mail.c YN|Crash [y/N]: +462 mail.c YN|Warning: node is not CM, send immediate [y/N]: +463 mail.c YN|Attach file [y/N]: +464 mail.c |File +465 mail.c |will be attached +466 mail.c |File not within +467 email.c |mailbox - Incoming and outgoing email +468 email.c |archive - Archive of your email +469 email.c |trash - Trashcan, your old email +470 email.c |Area # +471 funcs.c |minutes. +472 change.c |Fullscreen Editor shortcut keys set to Emacs +473 change.c |Fullscreen Editor shortcut keys set to Wordstar +474 newuser.c change.c |Your address, maximum 3 lines (only visible for the sysop): +475 newuser.c change.c |You need to enter your address here +476 change.c |Old address: +477 mail.c |Use your alias ( +478 mail.c YN|) to post this message [Y/n]: +479 mail.c |No more areas with unread messages diff --git a/lang/Makefile b/lang/Makefile new file mode 100644 index 00000000..ca71378f --- /dev/null +++ b/lang/Makefile @@ -0,0 +1,48 @@ +# Makefile for MBSE BBS under Linux +# Copyright (c) 1998, 2000 by M. Broek. +# $Id: Makefile,v 1.10 2007/02/17 12:14:20 mbse Exp $ + +include ../Makefile.global + +OTHER = Makefile README Language.xref germandu.txt +SDAT = source.en source.nl source.es source.gl source.de source.fr source.zh +LDAT = language.en language.nl language.es language.gl language.de language.fr language.zh + + +all: ${LDAT} + +clean: + rm -f core filelist Makefile.bak language.* + +install: ${LDAT} + ${INSTALL} -c -o ${OWNER} -g ${GROUP} -m 0444 ${LDAT} ${INTDIR} + +language.en: source.en + ../mbutils/mblang language.en source.en + +language.nl: source.nl + ../mbutils/mblang language.nl source.nl + +language.es: source.es + ../mbutils/mblang language.es source.es + +language.gl: source.gl + ../mbutils/mblang language.gl source.gl + +language.de: source.de + ../mbutils/mblang language.de source.de + +language.fr: source.fr + ../mbutils/mblang language.fr source.fr + +language.zh: source.zh + ../mbutils/mblang language.zh source.zh + + +filelist: Makefile + BASE=`pwd`; \ + BASE=`basename $${BASE}`; \ + (for f in ${SDAT} ${OTHER} ;do echo ${PACKAGE}-${VERSION}/$${BASE}/$$f; done) >filelist + +depend: + diff --git a/lang/README b/lang/README new file mode 100644 index 00000000..ba8c68e6 --- /dev/null +++ b/lang/README @@ -0,0 +1,43 @@ +$Id: README,v 1.5 2007/02/17 12:14:20 mbse Exp $ + + LANGUAGE SOURCES FOR MBSE BBS. + ============================== + + +This directory contains the language sources for MBSE BBS. The file +Language.xref is only a reference file with linenumbers and source +references. The files source.en, source.nl and source.de are the +real language sources. The resulting files language.nl, language.en +and language.de are placed in the ~/share/int directory where the bbs +will expect them to be. + +If you make your own language files, use Language.xref as a guide. +The syntax for each language line is: + +KEYS|Language line + +The keys are the keys that the users must press for the right response. +Order is important. The "|" character is a seperator, the rest of the +language line is the line shown to the user. Trailing spaces are important! + +If you do create language sources then I would like that you make them +public available and send them to me so I can include them in the +source distribution. + +Michiel. + + +Current language maintainters: + +en Michiel Broek +nl Michiel Broek +es Redy Rodriguez +gl Redy Rodriguez +de Harald Wuensch +germandu Malte Tychsen <2:240/9350@fidonet> (alternative german). +fr Francois Thunus <2:270/24@fidonet> + +If you want to use the germandu language instead of the default german +language then run "mblang germandu.txt language.de" and install the +file laguage.de in /opt/mbse/share/int. + diff --git a/lang/germandu.txt b/lang/germandu.txt new file mode 100644 index 00000000..00e33905 --- /dev/null +++ b/lang/germandu.txt @@ -0,0 +1,480 @@ +|Bitte Vor- und Nachnamen eingeben: +|Bitte gib Deinen Nachnamen ein: +|Abmelden des Benutzers ... +|Pruefen der Datei ... +JN|Hast Du Deinen Namen korrekt eingegeben? [a/ein] +|Bitte melde Dich nun mit folgendem Namen erneut an: +|Dies ist ein PRIVATES System. Gib zum Verlassen "off" ein +|Gib bitte die Nummer ein - beenden mit : +|Passwort: +|Die maximale Anzahl von Login-Versuchen wurde ueberschritten ... +|Entweder Dein NAME oder Dein PASSWORT wurden falsch eingegeben +HR|Export in ome oder ules Verzeichnis: +|Message exportiert in das Rules Verzeichnis als +|Keine Rules gefunden fuer diese Area +|Keine Berechtigung zum loeschen der Message +|Offline Reader: Erweiterte Info _AN_gestellt +|Offline Reader: Erweiterte Info _AUS_gestellt +|Dies ist keine Textdatei. +|Du darfst nur +|mal gleichzeitig eingewaehlt sein +|Dieses Program ist von jemand anderem in Benutzung, versuchs spaeter nochmal +JN| Ist dies richtig richtig? [a/ein]: +|Could not parse +|Waehle Deinen bevorzugten Zeichensatz +|Waehle Zeichensatz (beenden mit ): +|Zeichensatz ist jetzt: +YN|Check for new mail at login [Y/n]: +YN|Check for new files at login [Y/n]: +|Enter a short reason for chat +|The Sysop cannot use the bbs to chat! Use mbmon to chat +|Sorry, the chatserver is not available +|line +| +| +| +| +| +|MBSE Bulletin Board System - Anlegen eines neuen Benutzerkontos +|Diesen Namen verwenden: +|Bitte das neue Passwort eingeben : +|Bitte das neue Passwort wiederholen : +|Die Passwoerter stimmen nicht ueberein! Bitte wiederholen. +|Dein Passwort muss mindestens +|Zeichen enthalten! Bitte wiederholen. +| +|Bitte gib Deine Telefonnummer an: +|Die Mitteilung wurde in Dein privates Verzeichnis gespeichert als: +|Bitte gib Deine vollstaendige Telefonnummer an: +|Bitte gib Deine Daten-Telefonnummer an: +|Bitte gib Deinen Ihren Wohnort an: +|Der Name des Wohnortes ist zu kurz +MW|Bist Du aennlich oder eiblich ? : +|Maennlich +|Weiblich +|Bitte druecke "M" oder "W" +|Unbekannt +|Bitte gib Dein Geburtsdatum an [TT-MM-JJJJ]: +|Du hast versehentlich dieses Jahr eingegeben. +|Bitte verwende das vorgegebene Datumsformat +|*** Der Sysop beginnt den Chat *** +|*** Der Sysop hat den Chat beendet *** +JN=|Weiter (a/ein/<=>) +JN|Moechtest Du Menues mit "Hot-Keys" verwenden? [a/ein]: +|Bitte druecke "J" oder "N" +| +|Keine(r) +|Mitteilungsbereiche fuer den Offline Reader markieren +|Dein Benutzeraccount wurde wie folgt eingerichtet: +|Login Name : +|Passwort : +| * * * * * +|Die Registrierung des neuen Benutzeraccounts ist abgeschlossen. +|Unbekannt +|Bisheriger Ort: +|Bitte gib eine laengere Bezeichung fuer den Ort ein (min +| +| +|Die Mitteilung existiert nicht +|System-Mitteilungen sind jetzt EIN +|System-Mitteilungen sind jetzt AUS +| +| +|Private Mitteilung - Du bist weder Absender noch Empfaenger +|Bitte verwende das vorgegebene Datumsformat +|Logins heute bis +|# User Name Leitg. TimeOn Calls Ort +|Can't open archiver file. +|Select your preferred archiver +|Select Archiver (Enter to Quit): +|Archiver now set to: +|Bitte gib Deine Kombination ein. +|1. Zahl: +|Bitte versuche es erneut! Verwende Zahlen groesser 0 und kleiner +|2. Zahl: +|3. Zahl: +| Links: +|Rechts: +JN|Moechtest Du den Safe mit dieser Kombination oeffnen [a/ein]: +|Du hast folgendes gewonnen... +|Du hast den Safe leider nicht geoeffnet ! +|Der Safe Code war: +JN|Moechtest Du es noch einmal versuchen ? [a/ein]: +JN|Moechtest Du den Safe oeffnen ? [a/ein]: +|DER SAFE IST ZUR ZEIT VERSCHLOSSEN +|hat den Safe geknackt. +|Der Safe bleibt verschlossen bis der Sysop den Preis vergeben hat.. +|Maximale Versuche pro Tag ueberschritten ! +|Message fuer das "Nextuser Door" +|Die VON, AN und Betreff Felder sind optional. +| Von: +| An: +|Betreff: +| Bitte bis zu 10 Zeilen mit je 74 Zeichen eingeben +|Verfuegbare Funktionen: +LEBAS|isten, rsetze Text, earbeite Zeile, bbrechen, peichern +|Auswaehlen: +|Abbruch... +|Rueckkehr zu +|Welche Zeile bearbeiten: +|Diese Zeile existiert nicht. +|Bisheriges Passwort: +|Neues Password: +|Neues Passwort wiederholen: +|Passwort-Eingaben stimmen nicht ueberein ! +|Passwort-Aenderung erfolgreich +|Bisheriges Passwort wurde nicht richtig eingegeben ! +|Benutzerliste +|Suchzeichenkette eingeben oder fuer alle Benutzer: +|Name Ort Zuletzt hier Logins +|Die Suchzeichenkette wurde nicht gefunden ... +|Zeitlimit erreicht ... Verbindung wird getrennt! +JN=M|Weiter (a/ein/<=>) arkieren +|Suche +|mit +|Zeit Statistik fuer +|on +|Aktuelle Zeit : +|Aktuelles Datum : +|Verbindungszeit : +|Zeit fuer Heute : +|Verbleibende Zeit Heute : +|Taegl. Zeitlimit : +|Sie haben +JN|Mitteilungen, moechtest Du jetzt Deine Post lesen? [a/ein]: +|Es liegen keine neuen Mitteilungen fuer Dich vor. +|Hotkeys sind jetzt EIN +|Hotkeys sind jetzt AUS +|Ein +|Aus +|Dieser Benutzername existiert bereits +|Suchen nach persoenlichen Mitteilungen, bitte warten ... +|MBSE BBS Chat +|Der SysOp spricht gerade mit einem anderen User. +|Bitte versuche es in einigen Minuten nochmals ... +|Ihre maximale Anzahl von Sysop-Anrufen ist erreicht. +|Sysop ist zurzeit nicht erreichbar. Bitte hinterlasse eine Mitteilung... +|Versenden einer Mitteilung im Bereich: +|Von : +|An : +|Suche Adressaten ... +|Adressat nicht gefunden. Bitte nochmals eingeben oder beenden mit +|Betreff : +JN|Mitteilung verwerfen [a/ein] ?: +JN|Privat [a/ein]: +|Schreibe die Mitteilung jetzt. Beenden: eine leere Zeile eingeben +|Maximal 60 Zeilen, 73 Zeichen pro Zeile +|Maximale Zeilenanzahl erreicht +|Verfuegbare Funktionen: (Aktuelle Mitteilung: +|Zeilen) +|A - Anzeigen S - Speichern W - Weiterschreiben +|B - Beenden L - Zeile loeschen E - Zeile einfuegen +|T - Text bearbeiten X - Zeile bearbeiten R - Zeile ersetzen +ASWBLETXRZ|Z - Zeile zentrieren +|Auswaehlen +|Fortfahren +|Loeschen +|Loeschen ab Zeile +|Abgebrochen. +|Bitte gib eine Zahl ein im Bereich +|Loeschen bis Zeile +|Bearbeiten +|Gib die zu bearbeitende Zeile an +|Einfuegen +|Gib die Zeile an, vor der eingefuegt werden soll +|Listen +|Gib die zu ersetzende Zeile an +|Zeile: +|Unveraendert. +|Zeile jetzt: +|Beenden +JN|Bist Du sicher [a/ein]: +|Mitteilung wurde verworfen. +|Nein +|Text bearbeiten +|Gib die zu bearbeitende Zeile an +|Gib den zu ersetzenden Text an : +|Ersatztext : +|Zeile jetzt: +|Speichern +|Moeglicherweise Virus entdeckt ! +|Ok +|Auspacken des Archivs +|Mitteilung speichern +|Gib die zu zentrierende Zeile an +|Die Zeile kann nicht zentriert werden, da sie maximale Laenge hat. +|Es liegen keine Mitteilungen in diesem Bereich vor. +|Datum : +JN=|Weiter (a/ein/<=>/Bereich-Nr.): +|An : +|Von : +|Betreff : +|Naechste Antwort: +|Antwort auf: +|Mitteilungen in +WNLAUEHX|iederh. aechste etzte ntwort ne loescen nde eport +|Wiederh. aechste etzte ntwort ne loescen nde eport +|Naechste +|FEHLER +ANE|ntwort, aechste, nde: +|Enter um Betreff zu uebernehmen. +|# Von An Betreff +|Bereich +|enthaelt +|Mitteilung(en). +|Eingabe einer Zahl von +|Mitteilung Nummer [ +|Nr. Typ Beschreibung Insges. Pers. +|Thema +|Name des Bereichs eingeben oder ? fuer eine Liste: +|Bereich Nr. Anz. Beschreibung +|Loesche Mitteilung +| Mitteilungsbereiche +|Auswahl Bereich: +|Die angegebene Bereichsnummer existiert nicht. +|Das Passwort ist ungueltig +|Das Passwort ist korrekt +|Du hast nicht ausreichend Rechte um diesen Mitteilungsbereich aufzulisten +|Die Datei-Datenbank fuer diesen Bereich kann nicht geoeffnet werden +|Heraufgeladen von: +|G E L O E S C H T +| +JN|Adresse unbekannt, dennoch fortfahren [a/ein]: +|Dateien insgesamt: +|FATAL: die Datenbank der Dateibereiche kann nicht geoeffnet werden +|Du hast nicht ausreichend Rechte zum Herunterladen aus diesem Bereich +|Bitte den Dateinamen angeben: +|Kein Dateiname angegeben, Abbruch. +|Ungueltiger Dateiname! +|Dieses Datei ist fuer das Herunterladen leider nicht verfuegbar +|Du hast +|zusaetzliche Download-KBytes. +|Deine Restzeit reicht nicht fuer das Herunterladen dieser Datei. +|Dein Download-Limit reicht nicht fuer das Herunterladen " +|Du musst etwas heraufladen bevor Du herunterladen kannst. +|Kilobytes verfuegbar: +|Pruefe die markierten Downloads, bitte warten ... +|Mitteilungsbereiche fuer den "Offline Reader" abwaehlen +|FILEID.DIZ gefunden in +|Es sind keine Dateien zum Herunterladen markiert. +| +|Du hast folgende Bereiche fuer den "Offline Reader" markiert: +|Dateiname Groesse Datum +|Protokoll: Protokolldatei kann nicht geoeffnet werden. +|Auswahl des bevorzugten Protokolls +|Bitte Protokoll auswaehlen (frei lassen um abzubrechen): +|Ungueltige Auswahl, bitte nochmals eingeben! +|Standardprotokoll ist jetzt: +|Bitte den Suchbegriff eingeben: +|Dateisuche nach Schluesselwort +|Akzeptiert Platzhalter wie: *.zip, *.gz, *.* +| *.zip entspricht .zip +|Gib den zu suchenden Dateinamen an: +|Dateisuche nach Dateinamen +JN|Neue Dateien seit Deinem letzten Login suchen [a/ein]: +|Gib das Suchdatum an [TT-MM-JJJJ]: +|Dateisuche nach Datum +| +|Mitteilungen fuer "Offline Reader" herunterladen +|Deine Zugriffsberechtigung reicht nicht fuer das Heraufladen. +|Dein Plattenplatz reicht nicht fuer das Kopieren der Datei +|Dateien( +|Bytes) zum Herunterladen markiert. +|Diese Datei ist schon vorhanden +|Bitte starte das Heraufladen jetzt ... +|Folgendes konnte nicht heraufgeladen werden: +JN|Moechtest Du das Heraufgeladene mit einem Passwort schuetzen ? [a/ein]: +|Beachte: Passwoerter sind "CaSe SeNsITiVe!" +|Bitte gib die Beschreibung der Datei ein +|Danke! Die Zeit fuer das Heraufladen wurde Dir gutgeschrieben. +|Kopieren beginnen: +|Das Verzeichnis kann nicht aufgelistet werden: +|Home-Verzeichnis von +|Gib den Dateinamen zum Loeschen an: +|Versteckte Dateien koennen nicht geloescht werden ... +|Datei kann nicht geloescht werden ... +|Ungueltiger Dateiname, bitte erneut eingeben ... +|Die Datei existiert nicht, bitte erneut eingeben ... +|Forum Beschreibung Msgs. Pers. +| Dateibereiche +|Passwort fuer den Dateibereich: +|BBS hinzufuegen +|Name des BBS: +|Eingabe erforderlich ... +|Telefon-Nummer: +|Name des Sysop: +|BBS Software: +|Speicherplatz (GigaByte): +|Zugangsgeschwindigkeiten: +JN|Moechtest Du eine erweiterte Beschreibung hinzufuegen ? [a/ein]: +|Bitte geben Sie eine Beschreibung ein fuer +|BBS Liste +|# BBS Name Nummer Software GigaByte Speed +|Nach BBS suchen +|Bitte 3 Buchstaben des zu suchenden Namens eingeben: +|Mindestens 3 Zeichen muessen eingegeben werden... +JN|BBS-Details anzeigen ? [a/ein]: +|BBS in der Liste kann nicht gefunden werden ... +|BBS-Details anzeigen +|Bitte eine aufzulistende Nummer angeben: +|Datensatz nicht vorhanden +| Satz : +| BBS Name : +| Nummer : +| Software : +| GigaBytes : +| Speeds : +| Name des Sysop : +| Offen : +| Eintrag vom : +| Eintrag von : +|BBS loeschen +|Bitte die zu loeschende Nummer eingeben: +|Datensatz +|wurde nicht von Dir angelegt. +|ist schon zum Loeschen markiert +|zum Loeschen markiert +|Der Sysop wird die Liste endgueltig loeschen +|wenn Datensaetze zum Loeschen markiert sind. +|Mitteilungen insgesamt: +|Unbekannter Menubefehl! +|Speichern... +|MBSE BBS "Einzeiler" werden zufallsgesteuert im Hauptmenue erscheinen. +|Obszoene oder unanstaendige "Einzeiler" werden geloescht!! +|Bitte gib Deinen "Einzeiler" ein, max. 75 Zeichen. +|"Einzeiler" hinzugefuegt +| # A Datum User Beschreibung +| # Beschreibung +|Bitte aufzulistende Nummer eingeben: +|Verbunden von +|Datei(en) : +|Groesse : +|Protokoll : +|Download-Zaehler werden aktualisiert, bitte warten ... +|Fehlgeschlagen! +|Bytes +| # Area Aktiv Datei Gr. Kosten +|Ja +|Nein +UA|Aufgelistete mschalten, alle bwaehlen, um fortzufahren: +|Datei-Nummer eingeben, 1.. +|Markiert: +|Zurzeit sind keine Dateien markiert. +|Replace +|BBS wird geladen, bitte warten ... +|Neue oder geloeschte mail areas bei +|Area State Typ Beschreibung +|Check auf neue Mail ist jetzt AN +|Check auf neue Mail ist jetzt AUS +|Datei loeschen: +JN|Bist Du sicher? [a/ein]: +|Check auf neue Dateien ist jetzt AN +|Check auf neue Dateien ist jetzt AUS +|Du verwendest jetzt den +12|Auswahl: <1> Vollbild-Editor, <3> Externer Editor +|Es liegen keine Mitteilungen zum Herunterladen vor! +|Weiter mit ... +|Zentrieren +|Zu viele Mitteilungen. Nur die ersten +|Waehle Deine bevorzugte Sprache aus +|Sprache auswaehlen ( um abzubrechen): +|Sprache ist jetzt eingestellt auf: +|Das System wird jetzt einem Unix-Account fuer Dich anlegen +|Dein Unix-Account wurde angelegt, bitte verwenden ihn ab jetzt zum Login. +|Bitte gib einen Anmeldenamen ein (Max. 8 Zeichen) +|Beispiel: "Gerhard Schroeder", login = gschroed +|Dein gewuenschter Anmeldename: +|Dieser Anmeldename existiert bereits, bitte waehle einen anderen. +|Zeilen- +|Vollbild- +|Externen +|Editor +|Neu +|Local +|Netmail +|Echomail +|News +|E-Mail +|Del +|Jan +|Feb +|Mar +|Apr +|Mai +|Jun +|Jul +|Aug +|Sep +|Okt +|Nov +|Dez +|Autologout: Verbindung wird wegen Zeitablauf getrennt. +|Wird gepackt! +|Gib den Alias ein ( fuer "keinen"): +|Du kannst das BBS ab jetzt benutzen +|Benutzer On-Line in +|Name Leitg. Status Location +|"Nicht stoeren" ist jetzt AUS +|"Nicht stoeren" ist jetzt AN +|Im Menue +|Herunterladen +|Heraufladen +|Mitteilungen +|Ext. Programm +|Im Chat +|Dateibereich +JN|Moechtest Du diese Mitteilungen herunterladen [a/ein]? +|Bank Programm +|Sich. ext. Programm +|Liste Online +|Offline Reader +|Name an den die Nachricht geschickt werden soll: +|Der angegebene Benutzer ist nicht online: +|moechte nicht gestoert werden +|Bitte gib die Nachricht ein (Max 76 Zeichen) +|** Nachricht ** von +|Dein Passwort ist abgelaufen, neues Passwort: +|Drueck um fortzufahren +|Kein Senden moeglich, diese Area ist "Nur lesen"! +1|Auswahl: <1> Vollbild-Editor +|"Offline Reader" Paket heraufladen +|Kein oder fehlerhaftes Paket erhalten +|Unbekannter Datenkompressionstyp +|Archivprogramm nicht verfuegbar +|Unbekanter Typ von Mailpaket +|Herunterladen von BlueWave Offline +|Zusammenstellen des Pakets +|Packen mit +|Herunterladen fehlgeschlagen +|Herunterladen erfolgreich +|Aktualisieren der Lesezeichen +|Verarbeiten des BlueWave Antwort-Pakets +|Fehler im Paket +|Import der Mitteilungen +|Lein Schreibzugriff auf Area +|Mitteilungen importiert +|Verarbeiten der Offline Konfiguration +|Mitteilungsbereiche ausgewaehlt +|Verarbeiten der Datei-Anforderungen +|Herunterladen von QWK Offline +|Verarbeiten des QWK Antwort-Pakets +|Herunterladen ASCII Offline +JN|Crash-Mail [a/ein]: +JN|Warnung: Station ist nicht CM, sofort senden [a/ein]: +JN|Datei anhaengen [a/ein]: +|Datei +|wird angehaengt +|Datei nicht in +|mailbox - ein- und ausgehende E-mail +|archiv - Archiv Ihrer E-mails +|trash - Papierkorb, Ihre alte E-mail +|Bereich # +|Minuten. +|Tastenbelegung Vollbild-Editor im "Emacs" - Stil +|Tastenbelegung Vollbild-Editor im "Wordstar" - Stil +|Deine Adresse (max. 3 Zeilen, nur fuer den Sysop sichtbar): +|Du musst Deine Adresse hier angeben +|Alte Adresse: +|Moechtest Du Deinen Aliasnamen ( +JN|) als Absender verwenden [a/ein] +|Keine weitere Bereiche mit ungelesenen Nachrichten diff --git a/lang/source.de b/lang/source.de new file mode 100644 index 00000000..f5e5dec3 --- /dev/null +++ b/lang/source.de @@ -0,0 +1,480 @@ +|Bitte geben Sie Ihren Vor- und Nachnamen ein: +|Bitte geben Sie Ihren Nachnamen ein: +|Abmelden des Benutzers ... +|Pruefen der Datei ... +JN|Haben Sie Ihren Namen korrekt eingegeben? [J/n] +|Bitte melden Sie sich nun mit folgendem Namen erneut an: +|Dies ist ein PRIVATES System. Geben Sie zum Verlassen "off" ein +|Geben Sie bitte die Nummer ein - beenden mit : +|Passwort: +|Die maximale Anzahl von Login-Versuchen wurde ueberschritten ... +|Entweder Ihr NAME oder Ihr PASSWORT wurden falsch eingegeben +HR|Export in (H)ome oder (R)egeln Verzeichnis: +|Message exportiert in das Regeln Verzeichnis als +|Keine Regeln fuer diesen Bereich gefunden +|Keine Berechtigung zum Loeschen der Mitteilung +|Offline Reader: Erweiterte Info ANgestellt +|Offline Reader: Erweiterte Info AUSgestellt +|Dies ist keine reine Textdatei. +|Sie duerfen nur +|Verbindungen gleichzeitig belegen +|Ein anderer Benutzer verwendet das externe Programm. Bitte spaeter versuchen. +JN| Ist das korrekt [j/N]: +|Nicht erkannt: +|Bitte waehlen Sie Ihren bevorzugten Zeichensatz +|Auswahl des Zeichensatzes (Beenden: RETURN): +|Der Default-Zeichensatz wurde eingestellt auf: +JN|Beim Login nach neuen Mitteilungen suchen [J/n]: +JN|Beim Login nach neuen Dateien suchen [J/n]: +|Geben Sie bitte eine kurze Betreff-Zeile an +|Der Sysop kann MBSEBBS nicht zum Chat benutzen. Verwenden Sie "mbmon". +|Der Chat-Server ist zurzeit leider nicht verfuegbar +|Zeile +| +| +| +| +| +|MBSE Bulletin Board System - Anlegen eines neuen Benutzerkontos +|Diesen Namen verwenden: +|Bitte das neue Passwort eingeben : +|Bitte das neue Passwort wiederholen : +|Die Passwoerter stimmen nicht ueberein! Bitte wiederholen. +|Ihr Passwort muss mindestens +|Zeichen enthalten! Bitte wiederholen. +| +|Bitte geben Sie Ihre Telefonnummer an: +|Die Mitteilung wurde in Ihr privates Verzeichnis gespeichert als: +|Bitte geben Sie eine vollstaendige Telefonnummer an: +|Bitte geben Sie Ihre Daten-Telefonnummer an: +|Bitte geben Sie Ihren Wohnort an: +|Der Name des Wohnortes ist zu kurz +MW|Sind Sie (m)aennlich oder (w)eiblich ? : +|Maennlich +|Weiblich +|Bitte druecken Sie "M" oder "W" +|Unbekannt +|Bitte geben Sie Ihr Geburtsdatum an (TT-MM-JJJJ): +|Sie haben versehentlich -dieses Jahr- eingegeben. +|Bitte verwenden Sie das vorgegebene Datumsformat +|*** Der Sysop beginnt den Online-Dialog *** +|*** Der Sysop hat den Online-Dialog beendet *** +JN=|Weiter (J/n/=) +JN|Moechten Sie in den Menues "Hot-Keys" verwenden? [J/n]: +|Bitte druecken Sie J oder N +| +|Keine(r) +|Mitteilungsbereiche fuer den Offline Reader markieren +|Ihr Benutzeraccount wurde wie folgt eingerichtet: +|Login Name : +|Passwort : +| * * * * * +|Die Einrichtung des neuen Benutzeraccounts ist abgeschlossen. +|Unbekannt +|Bisheriger Ort: +|Bitte geben Sie eine laengere Bezeichung fuer den Ort ein (min +| +| +|Die Mitteilung existiert nicht +|System-Mitteilungen sind jetzt EIN +|System-Mitteilungen sind jetzt AUS +| +| +|Private Mitteilung - Sie sind weder Absender noch Empfaenger +|Bitte verwenden Sie das vorgegebene Datumsformat +|Logins heute bis +|# Benutzername Leitg. TimeOn Anrufe Ort +|Can't open archiver file. +|Select your preferred archiver +|Select Archiver (Enter to Quit): +|Archiver now set to: +|Bitte geben Sie drei Kombinationen ein. +|1. Zahl: +|Bitte versuchen Sie es erneut! Verwenden Sie Zahlen groesser 0 und kleiner +|2. Zahl: +|3. Zahl: +| Links: +|Rechts: +JN|Moechten Sie den Safe mit dieser Kombination oeffnen [J/n]: +|Sie haben folgendes gewonnen... +|Sie haben den Safe leider nicht geoeffnet ! +|Der Safe Code war: +JN|Moechten Sie es noch einmal versuchen ? [J/n]: +JN|Moechten Sie den Safe oeffnen ? [J/n]: +|DER SAFE IST ZUR ZEIT VERSCHLOSSEN +|hat den Safe geknackt. +|Der Safe bleibt verschlossen bis der Sysop den Preis vergeben hat.. +|Maximale Versuche pro Tag ueberschritten ! +|Mitteilungs-Signatur bearbeiten +|Die VON, AN und Betreff Felder sind optional. +| Von: +| An: +|Betreff: +| Bitte bis zu 10 Zeilen mit je 74 Zeichen eingeben +|Verfuegbare Funktionen: +LEBAS|(L)isten, (E)rsetze Text, (B)earbeite Zeile, (A)bbrechen, (S)peichern +|Auswaehlen: +|Abbruch... +|Rueckkehr zu +|Welche Zeile bearbeiten: +|Diese Zeile existiert nicht. +|Bisheriges Passwort: +|Neues Password: +|Neues Passwort wiederholen: +|Die Passwort-Eingaben stimmen nicht ueberein ! +|Die Passwort-Aenderung erfolgreich +|Das bisherige Passwort wurde nicht richtig eingegeben ! +|Benutzerliste +|Suchzeichenkette eingeben oder (Enter) fuer alle Benutzer: +|Name Ort Zuletzt hier Logins +|Die Suchzeichenkette wurde nicht gefunden ... +|Zeitlimit erreicht ... Verbindung wird getrennt! +JN=M|Weiter (J/n/=) M=Markieren +|Suche +|mit +|Zeit Statistik fuer +|on +|Aktuelle Zeit : +|Aktuelles Datum : +|Verbindungszeit : +|Zeit fuer heute : +|Verbleibende Zeit heute : +|Taegl. Zeitlimit : +|Sie haben +JN|Mitteilungen, moechten Sie jetzt Ihre Post lesen? [J/n]: +|Es liegen keine neuen Mitteilungen fuer Sie vor. +|Hot-Keys sind jetzt EIN +|Hot-Keys sind jetzt AUS +|Ein +|Aus +|Dieser Benutzername ist bereits anderweitig vergeben +|Suchen nach persoenlichen Mitteilungen, bitte warten ... +| MBSE BBS Online Dialog +|Der SysOp ist gerade mit einem anderen Benutzer im Online-Dialog. +|Bitte versuchen Sie es in einigen Minuten nochmals ... +|Ihre maximale Anzahl von Sysop-Anrufen ist erreicht. +|Sysop ist zurzeit nicht erreichbar. Bitte hinterlassen Sie eine Mitteilung... +|Versenden einer Mitteilung im Bereich: +|Von : +|An : +|Suche Adressaten ... +|Adressat nicht gefunden. Bitte nochmals eingeben oder beenden mit +|Betreff : +JN|Mitteilung verwerfen [j/N] ?: +JN|Privat [j/N]: +|Schreiben Sie nun die Mitteilung. Beenden: eine leere Zeile eingeben +|Maximal 60 Zeilen, 73 Zeichen pro Zeile +|Maximale Zeilenanzahl erreicht +|Verfuegbare Funktionen: (Aktuelle Mitteilung: +|Zeilen) +|A - Anzeigen S - Speichern W - Weiterschreiben +|B - Beenden L - Zeile loeschen E - Zeile einfuegen +|T - Text bearbeiten X - Zeile bearbeiten R - Zeile ersetzen +ASWBLETXRZ|Z - Zeile zentrieren +|Auswaehlen +|Fortfahren +|Loeschen +|Loeschen ab Zeile +|Abgebrochen. +|Bitte geben Sie eine Zahl ein im Bereich +|Loeschen bis Zeile +|Bearbeiten +|Geben Sie die Nummer der zu bearbeitenden Zeile an +|Einfuegen +|Geben Sie Nummer der Zeile an, vor der eingefuegt werden soll +|Auflisten +|Geben Sie die Nummer der zu ersetzenden Zeile an +|Zeile: +|Unveraendert. +|Zeile jetzt: +|Beenden +JN|Sind Sie sicher [j/N]: +|Mitteilung wurde verworfen. +|Nein +|Text bearbeiten +|Geben Sie die Nummer der zu bearbeitenden Zeile an +|Geben Sie den zu ersetzenden Text an : +|Ersatztext : +|Zeile jetzt: +|Speichern +|Ein moeglicher Computer-Virus wurde gefunden ! +|Ok +|Auspacken des Archivs +|Mitteilung speichern +|Geben Sie die zu zentrierende Zeile an +|Die Zeile kann nicht zentriert werden, da sie maximale Laenge hat. +|Es liegen keine Mitteilungen in diesem Bereich vor. +|Datum : +JN=|Weiter (J/n/=/Bereich-Nr.): +|An : +|Von : +|Betreff : +|Naechste Antwort: +|Antwort auf: +|Mitteilungen in +WNLAUEHX|Wiederh. Naechste Letzte Antwort neU loescHen Ende eXport +|Wiederh. Naechste Letzte Antwort neU loescHen Ende eXport +|Naechste +|FEHLER +ANE|(A)ntwort, (N)aechste, (E)nde: +|Enter um Betreff zu uebernehmen. +|# Von An Betreff +|Bereich +|enthaelt +|Mitteilung(en). +|Eingabe einer Zahl von +|Mitteilung Nummer [ +|Nr. Typ Beschreibung Insges. Pers. +|Thema +|Name des Bereichs eingeben oder ? fuer eine Liste: +|Bereich Nr. Anz. Beschreibung +|Loesche Mitteilung +| Mitteilungsbereiche +|Auswahl Bereich: +|Die angegebene Bereichsnummer existiert nicht. +|Das Passwort ist ungueltig +|Das Passwort ist korrekt +|Sie haben nicht ausreichend Rechte um diesen Mitteilungsbereich aufzulisten +|Die Datei-Datenbank fuer diesen Bereich kann nicht geoeffnet werden +|Heraufgeladen von: +|G E L O E S C H T +| +JN|Adresse unbekannt, dennoch fortfahren [j/N]: +|Dateien insgesamt: +|Systemfehler: die Datenbank der Dateibereiche kann nicht geoeffnet werden +|Sie haben nicht ausreichend Rechte zum Herunterladen aus diesem Bereich +|Bitte den Dateinamen angeben: +|Kein Dateiname angegeben, Abbruch. +|Ungueltiger Dateiname ! +|Diese Datei ist fuer das Herunterladen leider nicht verfuegbar +|Sie haben +|zusaetzliche Download-KBytes. +|Ihre Restzeit reicht nicht um diese Datei herunterzuladen. +|Ihr Download-Limit reicht nicht fuer das Herunterladen " +|Sie muessen etwas heraufladen bevor Sie herunterladen koennen. +|Kilobytes verfuegbar: +|Pruefe die markierten Downloads, bitte warten ... +|Mitteilungsbereiche fuer den "Offline Reader" abwaehlen +|FILEID.DIZ gefunden in +|Es sind keine Dateien zum Herunterladen markiert. +| +|Sie haben folgende Bereiche fuer den "Offline Reader" markiert: +|Dateiname Groesse Datum +|Protokoll: Protokolldatei kann nicht geoeffnet werden +|Auswahl des bevorzugten Protokolls +|Bitte Protokoll auswaehlen (frei lassen um abzubrechen): +|Ungueltige Auswahl, bitte nochmals eingeben! +|Standardprotokoll ist jetzt: +|Bitte den Suchbegriff eingeben: +|Dateisuche nach Schluesselwort +|Akzeptiert Platzhalter wie: *.zip, *.gz, *.* +| *.zip entspricht .zip +|Geben Sie den zu suchenden Dateinamen an: +|Dateisuche nach Dateinamen +JN|Neue Dateien seit Ihrem letzten Login suchen [J/n]: +|Geben Sie das Suchdatum an [TT-MM-JJJJ]: +|Dateisuche nach Datum +| +|Mitteilungen fuer "Offline Reader" herunterladen +|Ihre Zugriffsberechtigung reicht nicht fuer das Heraufladen. +|Ihr Plattenplatz reicht nicht fuer das Kopieren der Datei +|Dateien( +|Bytes) zum Herunterladen markiert. +|Diese Datei ist schon vorhanden +|Bitte starten Sie das Heraufladen jetzt ... +|Folgendes konnte nicht heraufgeladen werden: +JN|Moechten Sie das Heraufgeladene mit einem Passwort schuetzen ? [j/N]: +|Beachten Sie: Passwoerter sind "CaSe SeNsITiVe!" +|Bitte geben Sie die Beschreibung der Datei ein +|Danke! Die Zeit fuer das Heraufladen wurde Ihnen gutgeschrieben. +|Kopieren beginnen: +|Das Verzeichnis kann nicht aufgelistet werden: +|Home-Verzeichnis von +|Geben Sie den Dateinamen zum Loeschen an: +|Versteckte Dateien koennen nicht geloescht werden ... +|Datei kann nicht geloescht werden ... +|Ungueltiger Dateiname, bitte erneut eingeben ... +|Die Datei existiert nicht, bitte erneut eingeben ... +|Forum Beschreibung Msgs. Pers. +| Dateibereiche +|Passwort fuer den Dateibereich: +|BBS hinzufuegen +|Name des BBS: +|Eingabe erforderlich ... +|Telefon-Nummer: +|Name des Sysop: +|BBS Software: +|Speicherplatz (GigaByte): +|Zugangsgeschwindigkeiten: +JN|Moechten Sie eine erweiterte Beschreibung hinzufuegen ? [J/n]: +|Bitte geben Sie eine Beschreibung ein fuer +|BBS Liste +|# BBS Name Nummer Software GigaByte Speed +|Nach BBS suchen +|Bitte 3 Buchstaben des zu suchenden Namens eingeben: +|Mindestens 3 Zeichen muessen eingegeben werden... +JN|BBS-Details anzeigen ? [J/n]: +|BBS in der Liste kann nicht gefunden werden ... +|BBS-Details anzeigen +|Bitte eine aufzulistende Nummer angeben: +|Datensatz nicht vorhanden +| Satz : +| BBS Name : +| Nummer : +| Software : +| GigaBytes : +| Speeds : +| Name des Sysop : +| Offen : +| Eintrag vom : +| Eintrag von : +|BBS loeschen +|Bitte die zu loeschende Nummer eingeben: +|Datensatz +|wurde nicht von Ihnen angelegt. +|ist schon zum Loeschen markiert +|zum Loeschen markiert +|Der Sysop wird die Liste endgueltig loeschen +|wenn Datensaetze zum Loeschen markiert sind. +|Mitteilungen insgesamt: +|Unbekannter Menubefehl! +|Speichern... +|MBSE BBS "Einzeiler" werden zufallsgesteuert im Hauptmenue erscheinen. +|Obszoene oder unanstaendige "Einzeiler" werden vom Sysop geloescht!! +|Bitte geben Sie Ihren "Einzeiler" ein, max. 75 Zeichen. +|"Einzeiler" hinzugefuegt +| # A Datum User Beschreibung +| # Beschreibung +|Bitte aufzulistende Nummer eingeben: +|Verbunden an Port +|Datei(en) : +|Groesse : +|Protokoll : +|Download-Zaehler werden aktualisiert, bitte warten ... +|Fehlgeschlagen! +|Bytes +| # Area Aktiv Gr. Kost Datei +|Ja +|Nein +UA|Aufgelistete (U)mschalten, alle (A)bwaehlen, um fortzufahren: +|Datei-Nummer eingeben, 1.. +|Markiert: +|Zurzeit sind keine Dateien markiert. +|Replace +|BBS wird geladen, bitte warten ... +|Neue oder geloeschte mail areas bei +|Area Status Typ Beschreibung +|Neue Mail suchen ist jetzt AN +|Neue Mail suchen ist jetzt AUS +|Datei loeschen: +JN|Sind Sie sicher? [J/n]: +|Neue Dateien suchen ist jetzt AN +|Neue Dateien suchen ist jetzt AUS +|Sie verwenden jetzt den +12|Auswahl: 1) Vollbild-Editor, 2) Externer Editor +|Es liegen keine Mitteilungen zum Herunterladen vor! +|Weiter mit ... +|Zentrieren +|Zu viele Mitteilungen. Nur die ersten +|Waehlen Sie Ihre bevorzugte Sprache aus +|Sprache auswaehlen ( um abzubrechen): +|Sprache ist jetzt eingestellt auf: +|Das System wird jetzt einem Unix-Account fuer Sie anlegen +|Ihr Unix-Account wurde angelegt, bitte verwenden Sie ihn ab jetzt zum Login. +|Bitte geben Sie einen Anmeldenamen ein (Max. 8 Zeichen) +|Beispiel: "Hans Schluckauf", login = hschluck +|Ihr gewuenschter Anmeldename: +|Dieser Anmeldename existiert bereits, bitte waehlen Sie einen anderen. +|Zeilen- +|Vollbild- +|Externen +|Editor +|Neu +|Local +|Netmail +|Echomail +|News +|E-Mail +|Del +|Jan +|Feb +|Mar +|Apr +|Mai +|Jun +|Jul +|Aug +|Sep +|Okt +|Nov +|Dez +|Autologout: Verbindung wird wegen Inaktivitaet getrennt. +|Wird gepackt! +|Geben Sie den Alias ein ( fuer "keinen"): +|Sie koennen das BBS ab jetzt benutzen +|Benutzer On-Line in +|Name Leitg. Status Ort +|"Nicht stoeren" ist jetzt AUS +|"Nicht stoeren" ist jetzt AN +|Im Menue +|Herunterladen +|Heraufladen +|Mitteilungen +|Ext. Programm +|Online-Dialog +|Dateibereich +JN|Moechten Sie diese Mitteilungen herunterladen [J/n]? +|Bank Programm +|Sich. ext. Programm +|Benutzerliste +|Offline Reader +|Name an den die Nachricht geschickt werden soll: +|Der angegebene Benutzer ist nicht online: +|moechte nicht gestoert werden +|Bitte geben Sie die Nachricht ein (Max 76 Zeichen) +|** Nachricht ** von +|Ihr Passwort ist abgelaufen, neues Passwort: +|Druecken Sie um fortzufahren +|Kein Senden moeglich, dieser Bereich ist schreibgeschuetzt ! +1|Auswahl: 1) Vollbild-Editor +|"Offline Reader" Paket heraufladen +|Kein oder fehlerhaftes Paket erhalten +|Unbekannter Datenkompressionstyp +|Archivprogramm nicht verfuegbar +|Unbekannter Mailpaket-Typ +|Herunterladen von BlueWave Offline +|Zusammenstellen des Pakets +|Packen mit +|Herunterladen fehlgeschlagen +|Herunterladen erfolgreich +|Aktualisieren der Lesezeichen +|Verarbeiten des BlueWave Antwort-Pakets +|Fehler im Paket +|Import der Mitteilungen +|Kein Schreibzugriff auf Bereich +|Mitteilungen importiert +|Verarbeiten der Offline-Konfiguration +|Mitteilungsbereiche ausgewaehlt +|Verarbeiten der Datei-Anforderungen +|Herunterladen von QWK Offline +|Verarbeiten des QWK Antwort-Pakets +|Herunterladen ASCII Offline +JN|Crash-Mail [j/N]: +JN|Warnung: Station ist nicht CM, sofort senden [j/N]: +JN|Datei anhaengen [j/N]: +|Datei +|wird angehaengt +|Datei nicht in +|mailbox - ein- und ausgehende E-mail +|archiv - Archiv Ihrer E-mails +|trash - Papierkorb, Ihre alte E-mail +|Bereich # +|Minuten. +|Tastenbelegung Vollbild-Editor im "EMACS" - Stil +|Tastenbelegung Vollbild-Editor im "WordStar" - Stil +|Ihre Adresse (max. 3 Zeilen, nur fuer den Sysop sichtbar): +|Sie muessen Ihre Adresse hier angeben +|Alte Adresse: +|Moechten Sie Ihren Aliasnamen ( +JN|) als Absender verwenden [J/n] +|Keine weitere Bereiche mit ungelesenen Nachrichten diff --git a/lang/source.en b/lang/source.en new file mode 100644 index 00000000..9fdbb463 --- /dev/null +++ b/lang/source.en @@ -0,0 +1,480 @@ +|Please enter your First and Last name: +|Please enter your Last name: +|Disconnecting user ... +|Scanning User File ... +YN|Did you spell your name correctly? [Y/n] +|You need to login again with the name: +|This is a PRIVATE System. Type "off" to leave +|Mark file number or press to stop +|Password: +|Maximum login attempts have been exceeded ... +|Either your NAME or PASSWORD is incorrect +HR|Export to (H)ome or (R)ules directory: +|Message exported to rules directory as +|No rules found for this area +|You are not allowed to delete that message +|Offline Reader: Extended Info turned ON +|Offline Reader: Extended Info turned OFF +|This is not a plain textfile. +|You may only login +|times at the same time +|The door is in use by another user, try again later +YN| Is this correct [y/N]: +|Could not parse +|Select your preferred character set +|Select character set (Enter to Quit): +|Character set now set to: +YN|Check for new mail at login [Y/n]: +YN|Check for new files at login [Y/n]: +|Enter a short reason for chat +|The Sysop cannot use the bbs to chat! Use mbmon to chat +|Sorry, the chatserver is not available +|line +| +| +| +| +| +|MBSE Bulletin Board System - NEW USER REGISTRATION +|Use this name: +|Please enter new password : +|Please enter password again : +|Your passwords do not match! Try again. +|Your password must contain at least +|characters! Try again. +| +|Please enter you Voice Number +|Message exported to your private directory as: +|Please enter a proper phone number +|Please enter you Data Number +|Please enter your location: +|Please enter a longer location +MF|What is your sex? (M)ale or (F)emale: +|Male +|Female +|Please answer M or F +|Unknown +|Please enter your Date of Birth DD-MM-YYYY: +|Sorry you entered this year by mistake. +|Please enter the correct date format +|*** Sysop is starting chat *** +|*** Sysop has terminated chat *** +YN=|More (Y/n/=) +YN|Would you like Hot-Keyed menus? [Y/n]: +|Please answer Y or N +| +|None +|Tag Offline Reader message areas +|Your user account has been created: +|Login Name : +|Password : +|not displayed +|New user registration completed. +|Could not find +|Old Location: +|Please enter a longer location (min +| +| +|Message doesn't exist +|News bulletins turned ON +|News bulletins turned OFF +| +| +|Private message, not owner +|Please enter the correct date format +|Todays Callers to +|# User Name Device TimeOn Calls Location +|Can't open archiver file. +|Select your preferred archiver +|Select Archiver (Enter to Quit): +|Archiver now set to: +|Please enter three combinations. +|1st digit: +|Please try again! You must input a number greater than Zero and less than +|2nd digit: +|3rd digit: +| Left: +|Right: +YN|Attempt to open safe with this combination [Y/n]: +|You have won the following... +|Sorry - You didn't open the safe! +|The safe code was: +YN|Do you want to try again ? [Y/n]: +YN|Do you want to open the safe ? [Y/n]: +|THE SAFE IS CURRENTLY LOCKED +|has cracked the safe. +|The safe will remain locked until the sysop rewards the user. +|Maximum trys per day Exceeded! +|Edit message signature +|The FROM, TO and SUBJECT fields are optional. +| From: +| To: +|Subject: +| Type up to 10 lines 74 Characters per line +|Functions available: +LREAS|(L)ist, (R)eplace text, (E)dit line, (A)bort, (S)ave +|Select: +|Aborting... +|Returning to +|Edit which line: +|Line does not exist. +|Old Password: +|New password: +|Confirm new password: +|Passwords do not match! +|Password Change Successful +|Old password incorrect! +|User List +|Enter Username search string or (Enter) for all users: +|Name Location Last On Calls +|Could not find search string ... +|Time limit exceeded ... disconnecting! +YN=M|More (Y/n/=) M=Mark +|Scanning +|with +|TIME STATISTICS for +|on +|Current Time : +|Current Date : +|Connect time : +|Time used today : +|Time remaining today : +|Daily time limit : +|You have +YN|messages, read your mail now? [Y/n]: +|You have no new mail in your mail box ... +|Hotkeys are now ON +|Hotkeys are now OFF +|On +|Off +|User name already exists +|Checking your mail box ... +|MBSE BBS Chat +|The SysOp is currently speaking to somebody else. +|Try paging him again in a few minutes ... +|You have paged the Sysop the maximum times allowed. +|Sysop currently is not available ... please leave a comment +|Posting message in area: +|From : +| To : +|Verifying user ... +|User not found. Try again, or (Enter) to quit +|Subj : +YN|Abort Message [y/N] ?: +YN|Private [y/N]: +|Begin your message now, Blank line to end +|Maximum of 60 lines, 73 characters per line +|Maximum message length exceeded +|Functions available: (Current Message: +|Lines) +|L - List message S - Save message C - Continue message +|Q - Quit message D - Delete line I - Insert line +|T - Text edit E - Edit line R - Replace line +LSCQDITERZ|Z - Center line +|Select +|Continue +|Delete +|Delete starting at line +|Aborted. +|Please enter a number in the range of +|Delete ending at line +|Edit +|Enter line # to edit +|Insert +|Enter line # to insert text before +|List +|Enter line # to replace +|Line reads: +|Unchanged. +|Line now reads: +|Quit +YN|Are you sure [y/N]: +|Message aborted. +|No +|Text Edit +|Enter line # to edit +|Text to replace : +|Replacement text : +|Line now reads: +|Save +|Possible VIRUS found! +|Ok +|Unpacking archive +|Saving message to disk +|Enter line # to center +|Line is maximum length and cannot be centered +|There are no messages in this area. +|Date : +YN=|More (Y/n/=/Area #): +|To : +|From : +|Subject : +|Next reply: +|Reply to: +|messages in +ANLREQDX|(A)gain, (N)ext, (L)ast, (R)eply, (E)nter, (D)el, (Q)uit, e(X)port +|(A)gain, (N)ext, (L)ast, (R)eply, (E)nter, (Q)uit, e(X)port +|Next +|ERROR +RNQ|(R)eply, (N)ext, (Q)uit: +|Enter to keep Subject. +|# From To Subject +|Message area +|contains +|messages. +|Please enter a message between +|Message number [ +|Area Type Description Messages Personal +|thread +|Enter the name of the conference, or ? for a list: +|Conference Area Msgs Description +|Deleting message +| Message Areas +|Select Area: +|Invalid area specified - Please try again ... +|Password is incorrect +|Password is correct +|You don't have enough security to list this area +|Can't open file database for this area +|Uploaded by: +|D E L E T E D +| +YN|Node not known, continue anyway [y/N]: +|Total Files: +|FATAL: Unable to open areas database +|You do not have enough access to download from this area. +|Please enter filename: +|No filename entered, Aborting. +|Illegal Filename! +|Sorry that file is unavailable for download +|You have +|extra download KBytes. +|You do not have enough time to download that file. +|You do not have enough bytes to download " +|You must upload before you can download. +|Kilobytes currently available: +|Checking your marked downloads, please wait... +|Untag Offline Reader message areas +|Found FILEID.DIZ in +|No files marked for download. +| +|You have selected the following Conference(s): +|Filename Size Date +|Protocol: Can't open protocol file. +|Select your preferred file transfer protcol +|Select Protocol (Enter to Quit): +|Ivalid selection, please try again! +|Protocol now set to: +|Enter keyword to use for Search: +|File Search by Keyword +|Accepts wildcards such as : *.zip, *.gz, *.* +| : *.zip is the same as .zip +|Enter filename to search for : +|File Search by Filename +YN|Search for new since your last call [Y/n]: +|Enter new date to search for [DD-MM-YYYY]: +|File Search by Date +| +|Offline Reader Download +|You do not have enough access to upload to this area. +|You have not enough diskspace free to copy this file +|files( +|bytes) marked for download. +|The file already exists on the system +|Please start your upload now ... +|Upload was unsuccessful for: +YN|Do you want to password protect your upload ? [y/N]: +|REMEMBER: Passwords are "CaSe SeNsITiVe!" +|Please enter description of file +|Your upload time has been returned to you. Thank you for your upload! +|Start copy: +|Can't open directory for listing: +|Home directory listing for +|Please enter filename to delete: +|Sorry you may not delete hidden files ... +|Unable to delete file ... +|Invalid filename, please try again ... +|File does not exist, please try again ... +|Forum Description Msgs. Pers. +| File Areas +|Please enter Area Password: +|Adding BBS +|BBS Name: +|Response needed ... +|Phone Number: +|Sysop Name: +|BBS Software: +|Storage (GigaByte): +|Speeds: +YN|Would you like to add a extended discription? [Y/n]: +|Please a enter discription for +|BBS Listing +|# BBS Name Number Software GigaByte Speed +|Search for a BBS +|Please enter 3 letters of BBS to search for: +|I need at least 3 letters ... +YN|View this BBS? [Y/n]: +|Could not find the BBS Listed ... +|Show a BBS +|Please enter number to list: +|Record does not exist +| Record : +| BBS Name : +| Number : +| Software : +| GigaBytes : +| Speeds : +| Sysop Name : +| Available : +| Date of Entry : +| Entry Name : +|Delete BBS +|Please enter number to delete: +|Record +|does not belong to you. +|already marked for deletion +|marked for deletion +|The Sysop will purge the list once he has +|seen you have marked a record for deletion. +|Total messages found: +|Unknown Menu Command! +|Saving... +|MBSE BBS Oneliners will randomly appear on the main menu. +|Obscene or libellous oneliners will be deleted!! +|Please enter your oneliner below. You have 75 characters. +|Oneliner added +| # A Date User Description +| # Description +|Please enter number to list: +|Connected from +|File(s) : +|Size : +|Protocol : +|Updating download counters, please wait ... +|Failed! +|Bytes +| # Area Active Size Cost File +|Yes +|No +TE|(T)oggle active, (E)rase all, (ENTER) to continue: +|Enter file number, 1.. +|Marked: +|No files tagged. +|Replace +|Loading BBS, please wait ... +|New or deleted mail areas at +|Area State Type Description +|New Mail check is now ON +|New Mail check is now OFF +|Delete file: +YN|Are you Sure? [Y/n]: +|New Files check is now ON +|New Files check is now OFF +|Now using the +12|Select: 1) Fullscreen editor, 2) External editor +|No messages found to download! +|Press (Enter) to continue: +|Center +|Too much messages. Only the first +|Select your preferred language +|Select Language: +|Language now set to: +|The system will now ask you for a "Unix Account" +|Your "Unix Account" is created, you may use it the next time you call. +|Please enter a login name (Maximum 8 characters) +|ie. John Doe, login = jdoe +|login > +|That login name already exists, please choose another one. +|Line +|Fullscreen +|External +|Editor +|New +|Local +|Netmail +|Echomail +|News +|E-Mail +|Del +|Jan +|Feb +|Mar +|Apr +|May +|Jun +|Jul +|Aug +|Sep +|Oct +|Nov +|Dec +|Autologout: idletime reached. +|Will be packed! +|Enter your handle (Enter for none): +|You are now ready to use the bbs +|Callers On-Line to +|Name Device Status Location +|Do not disturb turned OFF +|Do not disturb turned ON +|Browsing +|Downloading +|Uploading +|Msg Section +|External Door +|Chatting +|Listing Files +YN|Do you want to download these messages [Y/n]? +|Banking Door +|Safe Door +|WhosOn List +|Offline Reader +|Please enter username to send message to: +|Sorry, there is no user on +|doesn't wish to be disturbed +|Please enter in message to send (Max 76 Characters) +|** Message ** from +|Your password is expired, new password : +|Press ENTER to continue +|Posting not allowed, this area is Read Only! +1|Select: 1) Fullscreen editor +|Offline Reader Upload +|Invalid packet received +|Unknown compression type +|Archiver not available +|Unknown type mailpacket +|BlueWave Offline download +|Preparing packet +|Packing with +|Download failed +|Download successfull +|Updating lastread pointers +|Processing BlueWave reply packet +|ERROR in packet +|Import messages +|No Write access to area +|Messages imported +|Processing Offline Configuration +|Message areas selected +|Processing file requests +|QWK Offline Download +|Processing QWK reply packet +|ASCII Offline Download +YN|Crash [y/N]: +YN|Warning: node is not CM, send immediate [y/N]: +YN|Attach file [y/N]: +|File +|will be attached +|File not within +|mailbox - Incoming and outgoing email +|archive - Archive of your email +|trash - Trashcan, your old email +|Area # +|minutes. +|Fullscreen Editor shortcut keys set to Emacs +|Fullscreen Editor shortcut keys set to Wordstar +|Your address, maximum 3 lines (only visible for the sysop): +|You need to enter your address here +|Old address: +|Use your alias ( +YN|) to post this message [Y/n]: +|No more areas with unread messages diff --git a/lang/source.es b/lang/source.es new file mode 100644 index 00000000..1f720643 --- /dev/null +++ b/lang/source.es @@ -0,0 +1,480 @@ +|Por favor teclee su nombre y apellidos: +|Por favor teclee sus apellidos: +|Desconectando usuario ... +|Explorando fichero de usuarios ... +SN|¨Has escrito correctamente tu nombre? [S/n] +|Tienes que entrar otra vez con este nombre: +|Este es un sistema PRIVADO. Teclea "off" para salir +|Teclee n£mero de fichero o para terminar : +|Password: +|El n£mero de errores permitidos se ha sobrepasado ... +|Tu nombre o tu PASSWORD son incorrectos +PR|Exportar al directorio (P)ersonal o de (R)eglas: +|Mensaje exportado al directorio de reglas como +|No se encuentran reglas para este  rea. +|No puedes borrar este Mensaje. +|Lector Offline: Informaci¢n extendida ACTIVADA +|Lector Offline: Informaci¢n extendida DESACTIVADA +|Este no es un fichero de texto plano. +|S¢lo puedes hacer login +|veces al mismo tiempo +|Otro usuario est  usando esa door, int‚ntalo m s tarde. +SN| Es correcto [s/N]: +|No puedo iterpretar +|Select your preferred character set +|Select character set (Enter to Quit): +|Character set now set to: +YN|Check for new mail at login [Y/n]: +YN|Check for new files at login [Y/n]: +|Enter a short reason for chat +|The Sysop cannot use the bbs to chat! Use mbmon to chat +|Sorry, the chatserver is not available +|line +| +| +| +|áéíóúüÜñÑçÇ¿¡ºª ‚¡¢£š¤¥‡€¨­§¦ +| ‚¡¢£š¤¥‡€¨­§¦ +|MBSEBBS - REGISTRO DE NUEVO USUARIO +|Use este nombre: +|Por favor teclee el nuevo password : +|Por favor tecleelo de nuevo...... : +|­No coinciden! Vuelta a empezar... +|El password debe tener como m¡nimo +|caracteres. Vuelta a empezar... +| +|Teclea tu n£mero de tel‚fono de VOZ +|Mensaje exportado a tu directorio privado como: +|N£mero de tel‚fono incorrecto. Repite... +|Teclea tu n£mero de tel‚fono de MODEM +|¨Donde vives? (Ciudad): +|El nombre de tu ciudad es demasiado corto. Repite por favor +HM|¨Tu que eres (H)ombre o (M)ujer: +|Hombre +|Mujer +|Responde solo H o M +|Desconocido +|Fecha de nacimiento (DD-MM-AAAA): +|Has tecleado este a¤o por error. +|Teclea la fecha en formato correcto (DD-MM-AAAA) +|*** Atenci¢n: Te habla el SysOp *** +|*** Fin de la charla. Que tengas un buen d¡a *** +SN=|M s (S/n/=) +SN|¨Quieres men£s r pidos? [S/n]: +|Por favor contesta S ¢ N +| +|Nada +|Marcar  reas para lectura Off-Line +|Tu cuenta de usuario ha sido creada: +|Nombre de Login : +|Password : +|no visualizable +|Registro de novo usuario completo. +|No encuentro +|Localidad anterior : +|Localidad demasiado corta: (min. +| +| +|No existe el mensaje +|Noticias activadas +|Noticias desactivadas +| +| +|Mensaje privado, y no es tuyo +|Teclee el formato de fecha correcto +|Hoy llamaron a +|# Usr. Nombre Puerto Tiempo Llams Localidad +|Can't open archiver file. +|Select your preferred archiver +|Select Archiver (Enter to Quit): +|Archiver now set to: +|Teclee tres combinaciones. +|1er digito: +|­Repita! Debe ser un n£mero mayor que cero y menor que +|2do digito : +|3er digito: +|Izquierda : +| Derecha : +SN|Intento abrir con esta combinaci¢n [S/n]: +|Has ganado ... +|­Ohhh! - No se abre... +|La combinaci¢n era: +SN|¨Quieres volver a intentarlo? [S/n]: +SN|¨Quieres intentar abrir la caja? [S/n]: +|LA CAJA ESTA BLOQUEADA. +|ha abierto la caja. +|la caja permanecer  bloqueada hasta que el SysOp recompense al usuario. +|­Has excedido el m ximo n£mero de intentos diarios! +|Mensaje al siguiente usuario: +|Los campos De, Para y Asunto son opcionales. +| De: +| Para: +| Asunto: +| Teclea hasta 10 lineas de 74 Caracteres por linea +|Funciones disponibles: +LCEAG|(L)istar, (C)ambiar texto, (E)ditar linea, (A)bandonar (G)uardar +|Elija: +|Abandonando... +|Volviendo a +|Editar la linea n§: +|Esa no existe. +|Password viejo: +|Password nuevo: +|Repite el nuevo: +|­No coinciden! +|Password cambiado. No lo olvides... +|­Password viejo incorrecto! +|Lista de usuarios +|Buscar un nombre (Enter para listar todos): +|Nombre Localidad U.Llamada Llamadas +|No lo encuentro ... +|Limite de tiempo sobrepasado ... desconectando! +SN=M|M s (S/n/=) M=Marcar +|Buscando +|con +|Estad¡sticas de TIEMPO de +|en +|Hora Actual : +|Fecha Actual : +|Tiempo de conexion : +|Tiempo usado hoy : +|Tiempo que queda : +|L¡mite diario : +|Tienes +SN|mensajes, ¨Quieres leerlos ahora? [S/n]: +|No tienes correo nuevo a tu nombre ... +|Men£s r pidos activados +|Men£s r pidos desactivados +|Act +|Des +|El nombre ya existe +|Buscando correo nuevo ... +|Charla de mbsebbs +|El Sysop est  hablando con otro usuario. +|Intenta llamarlo de nuevo dentro de un rato ... +|Ya has llamado muchas veces. +|El SysOp no est  ... ¨por que no le dejas un mensaje? +|Poniendo mensaje en el  rea: +|De : +|Para : +|Verificando usuario... +|Usuario no existe. Repite, o (Enter) para salir +|Asunto : +SN|¨ Cancelar Mensaje [s/N] ?: +SN|Privado [s/N]: +|Comienza a escribir tu mensaje. (Enter) en una nueva linea para salir. +|M ximo 60 lineas, 73 caracteres por linea +|Longitud m xima sobrepasada +|Funciones disponibles: (Mensaje Actual: +|Lineas) +|L - Listar mensaje G - Guardar mensaje C - Continuar escribiendo +|A - Abandonar B - Borrar l¡neas I - Insertar linea +|T - editar Texto E - Editar l¡nea S - Sustituir linea +LGCABITESZ|Z - Centrar linea +|Elija +|Continuar +|Borrar +|Borrar desde la l¡nea +|Abandonar. +|Teclee un n£mero comprendido entre +|Borrar hasta la l¡nea +|Editar +|N§ de linea a editar +|Insertar +|Insertar antes de la l¡nea n§ +|Listar +|N§ de Linea a sustituir +|La linea dice: +|No modificada. +|La linea ahora dice: +|Abandonar. +SN|¨Est s seguro? [s/N]: +|Mensaje anulado. +|No +|Editar texto +|N§ de l¡nea a editar +|Texto a cambiar : +|Texto nuevo : +|La l¡nea ahora dice: +|Guardar +|­Posible VIRUS encontrado! +|Ok +|Descomprimiendo +|Guardando mensaje en disco +|N§ de linea # a centrar +|La linea es demasiado larga y no se puede centrar +|No hay mensajes en esta  rea. +|Fecha : +SN=|M s (S/n/=/n§  rea): +|Para : +|De : +|Asunto : +|Sig. resp.: +|Resp. a : +|mensajes en +OSARETBX|(O)tra vez (S)ig. (A)nt. (R)esp. (E)ntrar (B)orrar (T)erminar e(X)port. +|(O)tra vez (S)ig. (A)nt. (R)esponder (E)ntrar (T)erminar e(X)portar +|Siguiente +|ERROR +RST|(R)esponder, (S)iguiente, (T)erminar: +|Enter para mantener el mismo asunto +|n§ De Para Asunto +|El  rea +|tiene +|mensajes. +|Teclee un mensaje entre +|N£mero de mensaje [ +|Area Tipo Descripci¢n Mensajes Personal +|hilo +|Teclee N§ ¢ TAG del  rea, ? para ver lista: +|TAG Area Msjs Descripci¢n +|Borrando mensaje +| Areas de Mensajes +|Elija un  rea: +| rea elegida no v lida - Elija otra ... +|Password incorrecto +|Password correcto +|No tienes permiso para listar esta  rea +|No puedo abrir la base de ficheros de esta  rea +|Enviado por: +|B O R R A D O +| +SN|Nodo desconocido. ¨Continuar? [s/N]: +|Total Fichs: +|FATAL: Imposible abrir base de  reas +|No tienes permiso para descargar ficheros de esta  rea. +|Nombre del fichero: +|Nombre vac¡o, cancelando. +|­Nombre de fichero no v lido! +|Ese fichero no est  disponible para descargar +|Tienes +|KBytes extra para descargar. +|No tienes tiempo suficiente para descargar ese fichero. +|No tienes suficiente cr‚dito para descargar " +|Debes enviar algo antes de descargar. +|Kilobytes disponibles: +|Verificando ficheros marcados, espera un poco... +|Desmarcar  reas para lectura Off-Line +|Encontrado FILEID.DIZ en +|No hay ficheros marcados. +| +|Has seleccionado las siguientes  reas: +|Fichero Tama¤o Fecha +|Protocolo: No puedo abrir fichero de protocolos. +|Elija el protocolo de transferencia predeterminado +|Elija Protocolo (Enter para salir): +|Ese no vale, ­Elija otro! +|Protocolo predeterminado: +|Palabra a buscar: +|Buscar fichero por una palabra +|Se aceptan comodines como : *.zip, *.gz, *.* +| : *.zip es lo mismo que .zip +|Nombre de fichero a buscar: +|Buscar fichero por nombre +SN|Buscar nuevos ficheros desde tu £ltima llamada [S/n]: +|Fecha desde la que buscar [DD-MM-YYYY]: +|Buscar ficheros por fecha +| +|Descargar Correo para lectura OFF-LINE +|No tienes permiso para enviar ficheros a esta  rea. +|No hay suficiente espacio libre para copiar este fichero +|ficheros( +|bytes) marcados para descargar. +|El fichero ya existe en este sistema +|Comienza a enviar ahora ... +|Env¡o no completado por: +SN|¨Quieres proteger con password el fichero enviado? [s/N]: +|­RECUERDA! La password es "CaSe SeNsITiVe!" +|Teclee la descripci¢n del fichero +|El tiempo del env¡o se te devuelve. ­Gracias por tu fichero! +|Copiando a directorio personal : +|No puedo abrir directorio para listar: +|Listado del directorio personal de +|Nombre del fichero a borrar: +|No puedes borrar ficheros ocultos ... +|Imposible borrar fichero ... +|Nombre no v lido, prueba otra vez ... +|El fichero no existe, prueba otra vez ... +|Area Descripci¢n Msgs. Pers. +| Areas de ficheros +|Teclee password del  rea: +|A¤adiendo BBS +|Nombre de la BBS: +|Respuesta obligatoria ... +|N£mero de tel‚fono: +|Nombre del SysOp: +|Software de BBS: +|Almacenamiento (GigaBytes): +|Velocidades: +SN|¨Quieres a¤adir una descripcion? [S/n]: +|Teclea la descripci¢n de +|Listado de BBSs +|n§ Nombre BBS N£mero Software GigaByte Veloc. +|Buscar una BBS +|Teclee 3 letras de la BBS que quiere buscar: +|Necesito al menos 3 letras ... +SN|¨Ver esta BBS? [S/n]: +|No puedo encontrar BBS ... +|Mostrar +|N£mero a listar: +|Registro inexistente +| Registro : +| Nombre BBS : +| N£mero : +| Software : +| GigaBytes : +| Velocidades : +| SysOp : +| Disponible : +| Fecha entrada : +| Entrada por : +|Borrar BBS +|Teclee n£mero de BBS a borrar: +|El Registro +|no te pertenece. +|ya estaba marcado para borrar +|queda marcado para borrar +|El SysOp eliminar  de la lista un d¡a de estos +|todos los registros marcados para borrar. +|Total de mensajes encontrados: +|­Comando desconocido! +|Guardando... +|Oneliners: Aparecer n de forma aleatoria en el men£ de la BBS. +|Los textos obscenos u ofensivos ser n borrados +|Teclee su 'oneliner' abajo. M x 75 caracteres. +|Oneliner a¤adida +|n§ A Fecha Usuario Descripci¢n +| # Descripci¢n +|Teclee n£mero a listar: +|Connected from +|Ficheros : +|Tama¤o : +|Protocolo : +|Actualizando contadores de descarga... +|­FALLO! +|Bytes +| n§ Area Activa Tam. Coste Fichero +|Si +|No +AT|(A)ctivar/desactivar, desactivar (T)odos, (ENTER) para seguir: +|N£mero de fichero, 1.. +|Marcado: +|No hay ficheros marcados. +|Remplazar +|Cargando BBS, espere por favor ... +|Areas de correo nuevas o borradas en +|Area Estado Tipo Descripci¢n +|Comprobar correo nuevo ACTIVADO +|Comprobar correo nuevo DESACTIVADO +|Borrar fichero: +SN|¨Est s seguro? [S/n]: +|Comprobar ficheros nuevos ACTIVADO +|Comprobar ficheros nuevos DESACTIVADO +|Est s usando el editor +12|Elige: 1) E. Pantalla completa, 2) Editor externo +|¡No hay mensajes! +|Pulsa (Enter) para seguir: +|Centrar +|Demasiados mensajes, Solo los primeros +|Elija su Idioma / Escolla idioma / Select language +|Elija Idioma: +|Idioma: +|El sistema va a crear tu cuenta UNIX. Se te preguntar n unos datos: +|Tu "Cuenta UNIX" ha sido creada. Puedes usarla para entrar en el 'Login'. +|Teclea un nombre de login (M ximo 8 caracteres) por ejemplo si te llamas +|'Elena Nito del Bosque ' puedes usar 'enitob', 'elenanb' o 'enbosque' +|login > +|Ese nombre de LOGIN ya existe. Elije otro... +|de l¡neas +|de Pantalla completa +|externo +| +|Nuevo +|Local +|Netmail +|Echomail +|News +|E-Mail +|Del +|Ene +|Feb +|Mar +|Abr +|May +|Jun +|Jul +|Ago +|Sep +|Oct +|Nov +|Dic +|Autodesconeccion: ¨Te has dormido o es que se ha cortado? +|se empaquetar n. +|Alias (Enter si no quieres ninguno): +|Hala, Ya puedes usar la BBS +|Usuarios conectados a +|Nombre Puerto Estado Localidad +|'No molesten' DESACTIVADO +|'No molesten' ACTIVADO +|Navegando +|Descargando +|Enviando +|S. Mensajes +|Door Externa +|Charlando +|Lst. Ficheros +SN|¨Quieres descargar estos mensajes [S/N]? +|En el Banco +|Door de la Caja Fuerte +|L. Conectados +|Lector Off-line +|Teclea usuario al que enviar un aviso: +|No hay usuario en +|No quiere ser molestado +|Teclea texto del aviso (Max 76 Caracteres) +|** Mensaje ** de +|Tu password ha caducado, nuevo password : +|Pulsa ENTER para seguir +|No puedes escribir, ­esta  rea es de Solo Lectura! +1|Elige: 1) Editor de pantalla completa +|Upload de correo Off-Line +|El paquete recibido no es v lido +|Comprimido con un compresor desconocido +|El compresor no est  disponible +|Paquete de correo de tipo desconocido +|Descarga de BlueWave +|Preparando paquete +|Comprimiendo con +|Descarga fallida +|Descarga completa +|Actualizando punteros de lectura +|Procesando paquete de respuestas BlueWave +|ERROR en el paquete +|Importando mensajes +|Imposible escribir en  rea +|Mensajes importados +|Procesando Configuraci¢n Off-Line +|Areas seleccionadas +|Procesando peticiones de ficheros +|Descarga de QWK +|Procesando paquete de respuestas QWK +|Descarga ASCII +SN|Crash [s/N]: +SN|Aviso: el nodo no es CM, enviar immediato [s/N]: +YN|Adjuntar fichero [s/N]: +|Fichero +|adjuntado +|El fichero no esta en +|buz¢n - Email entrante/saliente +|archivo - Email Archivado +|papelera - Papelera, Email borrado +|Area # +|minutos. +|Teclas del editor en modo Emacs +|Teclas del editor en modo Wordstar +|Tu direccci¢n, m ximo 3 l¡neas (S¢lo visible por el SysOp): +|Debes teclear tu direcci¢n ahora. +|Direcci¢n antigua: +|Usar tu alias ( +SN|) para este mensaje [S/n]: +|No hay mas areas con mensajes no leidos diff --git a/lang/source.fr b/lang/source.fr new file mode 100644 index 00000000..5bb70fde --- /dev/null +++ b/lang/source.fr @@ -0,0 +1,480 @@ +|Entrez votre prénom et nom: +|Entrez votre nom: +|Utilisateur déconnecté ... +|Recherche dans fichier utilisateurs ... +ON|Votre nom est-il écrit correctement? [O/n] +|Vous devez vous reconnecter avec le nom: +|Ceci est un système PRIVE. Tapez "off" pour sortir +|Marquez le numéro du fichier ou pressez pour sortir +|Mot de passe: +|Nombre maximum de tentatives dépassé ... +|Votre nom ou votre mot de passe est incorrect +HR|Exporter vers le répertoire (H)ome ou (R)ègles: +|Message exporté vers répertoire règles sous +|Pas de règles pour cette conférence +|Vous n'avez pas le droit d'effacer ce message +|Offline Reader: Infos étendues ON +|Offline Reader: Infos étendues OFF +|Ceci n'est pas un simple fichier texte. +|Vous ne pouvez vous connecter que +|fois simultanément. +|The door is in use by another user, try again later +YN| Is this correct [y/N]: +|Could not parse +|Select your preferred character set +|Select character set (Enter to Quit): +|Character set now set to: +YN|Check for new mail at login [Y/n]: +YN|Check for new files at login [Y/n]: +|Enter a short reason for chat +|The Sysop cannot use the bbs to chat! Use mbmon to chat +|Sorry, the chatserver is not available +|line +| +| +| +| +| +|MBSE Bulletin Board System - ENREGISTREMENT NOUVEL UTILISATEUR +|Utiliser ce nom: +|Entrez le nouveau mot de passe : +|Entrez encore le mot de passe : +|Vos mots de passe ne sont pas identiques. Essayez encore. +|Votre mot de passe doit contenir au moins +|caractères! Essayez encore. +| +|Veuillez entrer votre numéro "voix" +|Message exporté dans votre répertoire perso sous le nom: +|Veuillez entrer un numéro de téléphone valable: +|Veuillez entrer votre numéro "données": +|Veuillez entrer votre ville: +|Le nom de ville doit être plus long +HF|(H)omme ou (F)emme ? : +|Homme +|Femme +|Veuillez répondre H ou F +|Inconnu +|Entrez votre date de naissance JJ-MM-AAAA: +|Cette date semble erronée. +|Veuillez entrer une date correcte +|*** Sysop commence le chat *** +|*** Sysop a terminé le chat *** +ON=|Plus (O/n/=) +ON|Voulez vous les menus Hot-Keyed ? [O/n]: +|Veuillez répondre O ou N +| +|Aucun +|Tag Offline Reader message areas +|Votre compte utilisateur a été créé: +|Login : +|Mot de passe : +|non affiché +|Enregistrement nouvel utilisateur terminé. +|Ne peut pas trouver +|Ancienne ville : +|veuillez entrer un nom plus long (min +| +| +|Message n'existe pas +|News bulletins est ON +|News bulletins est OFF +| +| +|Message privé, pas le propriétaire +|Veuillez entrer la date au format correct +|Appels d'aujourd'hui pour +|# User Name Device TimeOn Calls Location +|Can't open archiver file. +|Select your preferred archiver +|Select Archiver (Enter to Quit): +|Archiver now set to: +|Entrez trois combinaisons. +|1er chiffre: +|Essayez encore! Le chiffre doit être compris entre zéro et +|2ème chiffre: +|3ème chiffre: +| gauche: +|droite: +ON|Essayer d'ouvrir le coffre avec cette combinaison [O/n]: +|Vous avez gagné...: +|Désolé, vous n'avez pas ouvert le coffre! +|Le code du coffre était: +ON|Voulez-vous ré-essayer ? [O/n]: +ON|Voulez-vous ouvrir le coffre ? [O/n]: +|LE COFFRE EST VERROUILLE +|a ouvert le coffre. +|Le coffre restera fermé jusqu'à ce que le sysop ait récompensé l'utilisateur. +|Nombre d'essais maximum par jour dépassé! +|Changer la signature des messages +|Les champs DE, A et SUJET sont optionels. +| De: +| A: +| Sujet: +| Maximum 10 lignes de 74 caractères +|Fonctions disponibles: +LREAS|(L)iste, (R)emplacer texte, (E)diter ligne, (A)rrêt, (S)auver +|Choisir: +|Annulation... +|Retour à +|Editer quelle ligne: +|Ligne n'existe pas. +|Ancien mot de passe: +|Nouveau mot de passe: +|Confirmer le nouveau mot de passe: +|Les mots de passe ne sont pas identiques! +|Mot de passe changé +|Ancien mot de passe incorrect! +|Liste des Utilisateurs +|Entrez un morceau du nom de l'utilisateur à rechercher ou enter pour tous: +|Nom Endroit Dernier Appels +|Chaîne non trouvée ... +|Temps dépassé ... Déconnection! +ON=M|Plus (O/n/=) M=Marquer +|Scanning +|avec +|STATISTIQUES temporelles pour +|on +|Heure : +|Date : +|Connection : +|Temps pour aujourd'hui : +|Temps restant : +|Limite quotidienne : +|Vous avez +ON|messages, les lire maintenant? [O/n]: +|Pas de nouveau courrier dans la boîte ... +|Hotkeys sont ACTIVES +|Hotkeys sont INACTIVES +|Actif +|Inactif +|Ce nom existe déjà +|Vérification de la BAL ... +|MBSE BBS Chat +|Le SysOp parle a quelqu'un d'autre. +|Essayez de le rappeller dans quelques minutes ... +|Vous avez appellé le Sysop le maximum de fois permises. +|Le Sysop n'est pas disponible ... Laissez un message +|Message inscrit dans la conférence: +| De : +| A : +|Vérification de l'utilisateur... +|Utilisateur non trouvé. Ré-essayez, ou (Enter) pour quitter +| Suj : +ON|Annuler Message [o/N] ?: +ON|Privé [o/N]: +|Ecrivez le message et terminez par une ligne vide. +|Maximum 60 lignes, 73 caractères par ligne +|Longueur maximum du message dépassée +|Fonctions disponibles: (Message actuel: +|Lignes) +|L - Liste des messages S - Sauver le message C - Continuer le message +|Q - Quitter le message F - eFface ligne I - Insérer une ligne +|T - changer le Texte E - Editer une ligne R - Remplacer une ligne +LSCQFITERZ|Z - Centrer la ligne +|Selectionner +|Continuer +|eFfacer +|eFfacer en commençant à la ligne +|Annulé. +|Please enter a number in the range of +|Delete ending at line +|Editer +|Entrer le numéro de ligne à changer +|Inserer +|Entrer le numéro de la ligne AVANT laquelle insérer +|Liste +|Entrer le numéro de la ligne à remplacer +|Ligne lues: +|Inchangé. +|Ligne lues maintenant: +|Quitter +ON|Etes vous sûr [o/N]: +|Message abandonné. +|Non +|Text Edit +|Entrer le numéro de la ligne à changer +|Text à remplacer : +|Texte de remplacement : +|La ligne est maintenant : +|Sauver +|VIRUS possible trouvé! +|Ok +|Décompresse archive +|Sauve message +|Entrer la ligne à centrer +|La ligne ne peut être centrée +|Pas de message dans cette conference. +|Date : +ON=|More (O/n/=/Area #): +|A : +|De : +|Sujet : +|Rép. suivante: +|Rép. à : +|messages dans +ANLREQDX|(A)gain, (N)ext, (L)ast, (R)épondre, (E)ntrer, (D)el, (Q)uitter, e(X)porter +|(A)gain, (N)ext, (L)ast, (R)eply, (E)nter, (Q)uit, e(X)port +|Next +|ERREUR +RNQ|(R)épondre, (N)ext, (Q)uitter: +|Entrer pour garder le sujet. +|# De A Sujet +|Message area +|contient +|messages. +|Entrer un message entre +|Message numéro [ +|Area Type Description Messages Personal +|thread +|Entrer le nom de la conference, ou ? pour la liste: +|Conference Area Msgs Description +|Deleting message +| Message Areas +|Selectionner Area: +|Conférence non valable - Réessayez ... +|Le mot de passe est incorrect +|Le mot de passe est correct +|Niveau trop bas pour cette conférence +|Ne paut pas ouvrir la base pour cette conférence +|Télécharrgé par: +|F A C +| +ON|Node inconnu, continue quand même [o/N]: +|Total Fichiers: +|FATAL: Impossible d'ouvrir la conférence +|Accès trop bas pour télécharger ici. +|Entrer le nom du fichier: +|Pas de fichier, abandon. +|Nom de fichier illegal! +|Ce fichier n'est pas disponible pour le téléchargement +|Vous avez +|extra download KBytes. +|You do not have enough time to download that file. +|You do not have enough bytes to download " +|You must upload before you can download. +|Kilobytes currently available: +|Checking your marked downloads, please wait... +|Untag Offline Reader message areas +|Found FILEID.DIZ in +|No files marked for download. +| +|You have selected the following Conference(s): +|Filename Size Date +|Protocol: Can't open protocol file. +|Select your preferred file transfer protcol +|Select Protocol (Enter to Quit): +|Ivalid selection, please try again! +|Protocol now set to: +|Enter keyword to use for Search: +|File Search by Keyword +|Accepts wildcards such as : *.zip, *.gz, *.* +| : *.zip is the same as .zip +|Enter filename to search for : +|File Search by Filename +YN|Search for new since your last call [Y/n]: +|Enter new date to search for [DD-MM-YYYY]: +|File Search by Date +| +|Offline Reader Download +|You do not have enough access to upload to this area. +|You have not enough diskspace free to copy this file +|files( +|bytes) marked for download. +|The file already exists on the system +|Please start your upload now ... +|Upload was unsuccessful for: +YN|Do you want to password protect your upload ? [y/N]: +|REMEMBER: Passwords are "CaSe SeNsITiVe!" +|Please enter description of file +|Your upload time has been returned to you. Thank you for your upload! +|Start copy: +|Can't open directory for listing: +|Home directory listing for +|Please enter filename to delete: +|Sorry you may not delete hidden files ... +|Unable to delete file ... +|Invalid filename, please try again ... +|File does not exist, please try again ... +|Forum Description Msgs. Pers. +| File Areas +|Please enter Area Password: +|Adding BBS +|BBS Name: +|Response needed ... +|Phone Number: +|Sysop Name: +|BBS Software: +|Storage (GigaByte): +|Speeds: +YN|Would you like to add a extended discription? [Y/n]: +|Please a enter discription for +|BBS Listing +|# BBS Name Number Software GigaByte Speed +|Search for a BBS +|Please enter 3 letters of BBS to search for: +|I need at least 3 letters ... +YN|View this BBS? [Y/n]: +|Could not find the BBS Listed ... +|Show a BBS +|Please enter number to list: +|Record does not exist +| Record : +| BBS Name : +| Number : +| Software : +| GigaBytes : +| Speeds : +| Sysop Name : +| Available : +| Date of Entry : +| Entry Name : +|Delete BBS +|Please enter number to delete: +|Record +|does not belong to you. +|already marked for deletion +|marked for deletion +|The Sysop will purge the list once he has +|seen you have marked a record for deletion. +|Total messages found: +|Unknown Menu Command! +|Saving... +|MBSE BBS Oneliners will randomly appear on the main menu. +|Obscene or libellous oneliners will be deleted!! +|Please enter your oneliner below. You have 75 characters. +|Oneliner added +| # A Date User Description +| # Description +|Please enter number to list: +|Connected from +|File(s) : +|Size : +|Protocol : +|Updating download counters, please wait ... +|Failed! +|Bytes +| # Area Active Size Cost File +|Yes +|No +TE|(T)oggle active, (E)rase all, (ENTER) to continue: +|Enter file number, 1.. +|Marked: +|No files tagged. +|Replace +|Loading BBS, please wait ... +|New or deleted mail areas at +|Area State Type Description +|New Mail check is now ON +|New Mail check is now OFF +|Delete file: +YN|Are you Sure? [Y/n]: +|New Files check is now ON +|New Files check is now OFF +|Now using the +12|Select: 1) Fullscreen editor, 2) External editor +|No messages found to download! +|Press (Enter) to continue: +|Center +|Too much messages. Only the first +|Select your preferred language +|Select Language: +|Language now set to: +|The system will now ask you for a "Unix Account" +|Your "Unix Account" is created, you may use it the next time you call. +|Please enter a login name (Maximum 8 characters) +|ie. John Doe, login = jdoe +|login > +|That login name already exists, please choose another one. +|Line +|Fullscreen +|External +|Editor +|New +|Local +|Netmail +|Echomail +|News +|E-Mail +|Del +|Jan +|Feb +|Mar +|Apr +|May +|Jun +|Jul +|Aug +|Sep +|Oct +|Nov +|Dec +|Autologout: idletime reached. +|Will be packed! +|Enter your handle (Enter for none): +|You are now ready to use the bbs +|Callers On-Line to +|Name Device Status Location +|Do not disturb turned OFF +|Do not disturb turned ON +|Browsing +|Downloading +|Uploading +|Msg Section +|External Door +|Chatting +|Listing Files +YN|Do you want to download these messages [Y/n]? +|Banking Door +|Safe Door +|WhosOn List +|Offline Reader +|Please enter username to send message to: +|Sorry, there is no user on +|doesn't wish to be disturbed +|Please enter in message to send (Max 76 Characters) +|** Message ** from +|Your password is expired, new password : +|Press ENTER to continue +|Posting not allowed, this area is Read Only! +1|Select: 1) Fullscreen editor +|Offline Reader Upload +|Invalid packet received +|Unknown compression type +|Archiver not available +|Unknown type mailpacket +|BlueWave Offline download +|Preparing packet +|Packing with +|Download failed +|Download successfull +|Updating lastread pointers +|Processing BlueWave reply packet +|ERROR in packet +|Import messages +|No Write access to area +|Messages imported +|Processing Offline Configuration +|Message areas selected +|Processing file requests +|QWK Offline Download +|Processing QWK reply packet +|ASCII Offline Download +YN|Crash [y/N]: +YN|Warning: node is not CM, send immediate [y/N]: +YN|Attach file [y/N]: +|File +|will be attached +|File not within +|mailbox - Incoming and outgoing email +|archive - Archive of your email +|trash - Trashcan, your old email +|Area # +|minutes. +|Fullscreen Editor shortcut keys set to Emacs +|Fullscreen Editor shortcut keys set to Wordstar +|Your address, maximum 3 lines (only visible for the sysop): +|You need to enter your address here +|Old address: +|Use your alias ( +YN|) to post this message [Y/n]: +|No more areas with unread messages diff --git a/lang/source.gl b/lang/source.gl new file mode 100644 index 00000000..7f639425 --- /dev/null +++ b/lang/source.gl @@ -0,0 +1,480 @@ +|Por favor teclee o seu nome e apelidos: +|Por favor teclee os seus apelidos: +|Desconectando usuario ... +|Explorando ficheiro de usuarios ... +SN|¨Escribiche-lo teu nome correctamente? [S/n] +|Tes que acceder de novo con este nome: +|Este ‚ un sistema PRIVADO. Teclea "off" para salir +|Teclea n£mero de ficheiro ou para rematar : +|Password: +|Sobrepasouse o n£mero m ximo de erros permitido... +|O teu nome ou a tua PASSWORD son incorrectos +HR|Exportar ¢ directrio (P)ersoal ou ¢ de (R)egras: +|Mesaxe exportada ¢ directorio de regras coma +|Non se atopan regras pra esta  rea +|No podes borrar esta mensaxe. +|Lector Offline: Informaci¢n extendida ACTIVADA +|Lector Offline: Informaci¢n extendida DESACTIVADA +|Este non ‚ un ficheiro de texto plano. +|Solo podes facer login +|veces ¢ mesmo tempo +|Outro usuario est  a usar esa door, proba mais tarde +SN| ‚ correcto [s/N]: +|Non podo interpretar +|Select your preferred character set +|Select character set (Enter to Quit): +|Character set now set to: +YN|Check for new mail at login [Y/n]: +YN|Check for new files at login [Y/n]: +|Enter a short reason for chat +|The Sysop cannot use the bbs to chat! Use mbmon to chat +|Sorry, the chatserver is not available +|line +| +| +| +|áéíóúüÜñÑçÇ¿¡ºª ‚¡¢£š¤¥‡€¨­§¦ +| ‚¡¢£š¤¥‡€¨­§¦ +|MBSE BBS - REXISTRO DE NOVO USUARIO +|Use este nome: +|Por favor teclee o novo password : +|Por favor repita o password outra vez...... : +|­Non coinciden! Volta a empezar... +|A password debe ter como m¡nimo +|caracteres. Volta a empezar... +| +|Teclea o teu n£mero de tel‚fono de VOZ +|Mensaxe exportado ¢ teu directorio privado como: +|N£mero de tel‚fono incorrecto. Repite... +|Teclea o n£mero de tel‚fono do teu MODEM +|¨Onde vives? (Cidade): +|O nome da t£a cidade ‚ demasiado curto. Repiteo por favor +HM|¨Tu que eres (H)ome ou (M)uller: +|Home +|Muller +|Contesta s¢ H o M +|Desco¤ecido +|Data de nacemento (DD-MM-AAAA): +|Tecleaches ‚ste ano por error. +|Teclea a fecha en formato correcto (DD-MM-AAAA) +|*** Atenci¢n: F lache o SysOp *** +|*** Fin da parola. Que te¤as un b¢ d¡a *** +SN=|M is (S/n/=) +SN|¨Queres men£s r pidos? [S/n]: +|Por favor contesta S ou N +| +|Nada +|Marcar  reas para lectura Off-Line +|Creouse a t£a conta de usuario: +|Nome de Login : +|Password : +|non visualizable +|Rexistro de novo usuario completo. +|Non topo +|Localidade anterior : +|Localidade demasiado curta: (min. +| +| +|Non existe a mensaxe +|Novas activadas +|Novas desactivadas +| +| +|Mensaxe privada, e non ‚ tua +|Teclea o formato de data correcto +|Hoxe chamaron a +|# Usr. Nombre Puerto Tiempo Llams Localidad +|Can't open archiver file. +|Select your preferred archiver +|Select Archiver (Enter to Quit): +|Archiver now set to: +|Teclea tres combinaci¢ns. +|1§ dixito: +|­Repite! Debe ser un n£mero maior que cero e menor que +|2§ dixito : +|3§ dixito: +| Esquerda : +| Dereita : +SN|Probo a abrir con esta combinaci¢n [S/n]: +|Ganaches ... +|­Ohhh! - Non se abre... +|A combinaci¢n era: +SN|¨Queres volver probar? [S/n]: +SN|¨Queres probar a abri-la caixa? [S/n]: +|A CAIXA ESTA BLOQUEADA. +| abriu a caixa. +|A caixa queda bloqueada ata que o SysOp recompense ¢ usuario. +|­Excedeche-lo m ximo n£mero de intentos diarios! +|Mensaxe ¢ seguinte usuario: +|Os campos De, Para e Asunto son opcionais. +| De: +| Para: +| Asunto: +| Teclea ata 10 li¤as de ata 74 Caracteres por linea +|Funci¢ns dispo¤ibles: +LCEAG|(L)istar, (C)ambiar texto, (E)ditar li¤a, (A)bandonar (G)ardar +|Escolle: +|Abandonando... +|Volvendo a +|Edita-la li¤a n§: +|Esa non existe. +|Password vella: +|Password nova: +|Repite a nova: +|­Non coinciden! +|Password cambiada. Non a esquezas... +|­Password vella incorrecta! +|Lista de usuarios +|Buscar un nome (Enter para listar todos): +|Nome Localidade U.Chamada Chamadas +|Non o atopo... +|L¡mite de tempo sobrepasado ... desconectando! +SN=M|M is (S/n/=) M=Marcar +|Buscando +|con +|Estad¡sticas de TEMPO de +|en +|Hora Actual : +|Data Actual : +|Tempo de conexion : +|Tempo usado hoxe : +|Tempo que queda : +|L¡mite diario : +|Tes +SN|mensaxes, ¨Queres lelas agora? [S/n]: +|Non hai correo novo pra ti ... +|Men£s r pidos activados +|Men£s r pidos desactivados +|Act +|Des +|O nome xa existe +|Buscando correo novo ... +|Charla de MBSE BBS +|O Sysop est  falando con outro usuario. +|Intenta chamalo de novo dentro de un pouco ... +|Xa chamacves moitas veces. +|O SysOp non est  ... ¨por que non lle deixas unha mensaxe? +|Po¤endo mensaxe na  rea: +|De : +|Para : +|Verificando usuario... +|Usuario non existe. Repite, ou (Enter) para sair +|Asunto : +SN|¨ Cancelar Mensaxe [s/N] ?: +SN|Privado [s/N]: +|Empeza a escribi-la tua mensaxe. (Enter) nunha li¤a vac¡a para sair. +|M ximo 60 li¤as, 73 caracteres por li¤a +|Lonxitud m xima sobrepasada +|Funcions dispo¤ibles: (Mensaxe Actual: +|Li¤as) +|L - Listar mensaxe G - Gardar mensaxe C - Continuar escribindo +|A - Abandonar B - Borrar li¤as I - Insertar li¤a +|T - editar Texto E - Editar li¤a S - Sustituir li¤a +LGCABITESZ|Z - Centrar li¤a +|Escolle +|Continuar +|Borrar +|Borrar dende a li¤a +|Abandonar. +|Teclea un n£mero entre +|Borrar ata a li¤a +|Editar +|N§ de li¤a a editar +|Insertar +|Insertar antes da li¤a n§ +|Listar +|N§ de Li¤a a sustituir +|A li¤a di: +|Non se cambiou: +|La li¤a agora di: +|Abandonar. +SN|¨Est s seguro? [s/N]: +|Mensaxe anulada. +|No +|Editar texto +|N§ de l¡¤a a editar +|Texto a cambiar : +|Texto novo : +|La l¡¤a agora di: +|Gardar +|­Posible VIRUS atopado! +|Ok +|Descomprimindo +|Gardando mensaxe no disco +|N§ de li¤a a centrar +|A li¤a ‚ demasiado longa e non se pode centrar +|Non hai mensaxes nesta  rea. +|Data : +SN=|M is (S/n/=/n§  rea): +|Para : +|De : +|Asunto : +|Seg. resp.: +|Resp. a: +|mensaxes en +OSACNRBX|(O)utra vez (S)eg. (A)nt. (C)ontes. (N)ova (B)orrar (R)ematar e(X)port. +|(O)utra vez (S)eg (A)nt. (C)ontes. (N)ova (R)ematar e(X)portar +|Seguinte +|ERROR +CSR|(C)ontestar, (S)eguinte, (R)ematar: +|Enter para mante-lo mesmo asunto +|n§ De Para Asunto +|A  rea +|ten +|mensaxes. +|Teclea unnha mensaxe entre +|N£mero de mensaxe [ +|Area Tipo Descripci¢n Mensaxes Persoais +|f¡o +|Teclee N§ ou TAG da  rea, ? para ve-la lista: +|TAG Area Msxs Descripci¢n +|Borrando mensaxe +| Areas de Mensaxes +|Escolle unha  rea: +| rea escollida non v lida - Escolla outra ... +|Password incorrecto +|Password correcto +|Non tes permiso para listar esta  rea +|Non podo abri-la base de ficheiros desta  rea +|Enviado por: +|B O R R A D O +| +SN|Nodo desco¤ecido. ¨Continuar? [s/N]: +|Total Fichs: +|FATAL: Imposible abrir base de  reas +|Non tes permiso para descargar ficheiros desta  rea. +|Nome do ficheiro: +|Nome vac¡o, cancelando. +|­Nome de ficheiro non v lido! +|Ese ficheiro non est  dispo¤ible para descargar +|Tes +|KBytes extra para descargar. +|Non tes tempo dabondo para descargar ese ficheiro. +|Non tes suficiente cr‚dito para descargar " +|Tes que enviar algo antes de descargar. +|Kilobytes dispo¤ibles: +|Verificando ficheiros marcados, agarda un pouco... +|Desmarcar  reas para lectura Off-Line +|Atopado FILEID.DIZ en +|Non hai ficheiros marcados. +| +|Escolleche-las seguintes  reas: +|Ficheiro Tama¤o Fecha +|Protocolo: Non podo abrir ficheiro de protocolos. +|Escolle o protocolo de transferencia predeterminado +|Escolle Protocolo (Enter para sair): +|Ese non vale, ­Escolle outro! +|Protocolo predeterminado: +|Palabra a buscar: +|Buscar ficheiro por unha palabra +|Aceptanse comodins coma : *.zip, *.gz, *.* +| : *.zip es lo mismo que .zip +|Nome do ficheiro a buscar: +|Buscar ficheiro por nome +SN|Buscar novos ficheiros dende a tua £ltima chamada [S/n]: +|Buscar novos dende fecha [DD-MM-YYYY]: +|Buscar ficheiros por fecha +| +|Descargar Correo para lectura OFF-LINE +|Non tes permiso para enviar ficheiros a esta  rea. +|Non hai espacio dabondo para copiar este ficheiro +|ficheiros( +|bytes) marcados para descargar. +|O ficheiro xa existe neste sistema +|Empeza a enviar agora ... +|Env¡o non rematado por: +SN|¨Queres protexer con password o ficheiro enviado? [s/N]: +|­LEMBRA! A password ‚ "CaSe SeNsITiVe!" +|Teclea a descripci¢n do ficheiro +|Dev¢lvechese o tempo do env¡o. ­Gracias polo ficheiro! +|Copiando a directorio persoal : +|Non podo abrir directorio para listar: +|Listado do directorio persoal de +|Nome do ficheiro a borrar: +|Non podes borrar ficheiros ocultos ... +|Imposible borrar ficheiro ... +|Nome non v lido, proba outra vez ... +|O ficheiro non existe, proba outra vez ... +|Area Descripci¢n Msxs. Pers. +| Areas de ficheiros +|Teclee password da  rea: +|A¤adindo BBS +|Nome da BBS: +|Resposta obligatoria ... +|N£mero de tel‚fono: +|Nome do SysOp: +|Software de BBS: +|Espacio (GigaBytes): +|Velocidades: +SN|¨Queres a¤adir unha descripcion? [S/n]: +|Teclea a descripci¢n de +|Listado de BBSs +|n§ Nome da BBS N£mero Software GigaByte Veloc. +|Buscar unha BBS +|Teclee 3 letras da BBS que quere buscar: +|Necesito lo menos 3 letras ... +SN| BBS? [S/n]: +|Non podo topa-la BBS ... +|Amosar una BBS +|N£mero a listar: +|Rexistro inexistente +| Rexistro : +| Nome BBS : +| N£mero : +| Software : +| GigaBytes : +| Velocidades : +| SysOp : +| Dispo¤ible : +| Fecha entrada : +| Entrada por : +|Borrar BBS +|Teclee n£mero da BBS a borrar: +|O Rexistro +|non ‚ teu. +|xa estaba marcado para borrar +|queda marcado para borrar +|O SysOp eliminar o da lista cando lle pareza +|todo-los rexistros marcados para borrar. +|Total de mensaxes topados: +|­Comando desco¤ecido! +|Gardando... +|Oneliners: Aparecer n de forma aleatoria no men£ da BBS. +|Os textos obscenos ou ofensivos ser n borrados +|Teclea a tua 'oneliner'. Máx 75 caracteres. +|Oneliner a¤adida +|n§ A Fecha Usuario Descripci¢n +| # Descripci¢n +|Teclee n£mero a listar: +|Connected from +|Ficheiros : +|Tama¤o : +|Protocolo : +|Actualizando contadores de descarga... +|­FALLO! +|Bytes +| n§ Area Activa Tam. Coste Fichero +|Si +|No +AT|(A)ctivar/desactivar, desactivar (T)odos, (ENTER) para seguir: +|N£mero de ficheiro, 1.. +|Marcado: +|Non hai ficheiros marcados. +|Replace +|Cargando BBS, agarde por favor ... +|Areas de correo novas ou borradas en +|Area Estado Tipo Descripci¢n +|Comprobar correo novo ACTIVADO +|Comprobar correo novo DESACTIVADO +|Borrar ficheiro: +SN|¨Est s seguro? [S/n]: +|Comprobar ficheiros novos ACTIVADO +|Comprobar ficheios novos DESACTIVADO +|Est s usando o editor +12|Escolle: 1) E. pantalla completa, 2) Editor externo +|¡Non hai mensaxes! +|Pulsa (Enter) para seguir: +|Centrar +|Demasiadas mensaxes, S¢ as primeiras +|Elija su Idioma / Escolla idioma / Select language +|Escolla Idioma: +|Idioma: +|O sistema vai crea-la tua conta UNIX. Preguntar che unhos datos: +|Creouse a tua "Conta UNIX". P¢dela usar para entrar no 'Login'. +|Teclea un nome de login (M ximo 8 caracteres) por exemplo se te chamas +|'Elena Nito del Bosque ' podes usar 'enitob', 'elenanb' ou 'enbosque' +|login > +|Ese nome de LOGIN xa existe. Escolle outro... +|de li¤as +|de pantalla completa +|externo +| +|New +|Local +|Netmail +|Echomail +|News +|E-Mail +|Del +|Xan +|Feb +|Mar +|Abr +|Mai +|Xun +|Xul +|Ago +|Sep +|Out +|Nov +|Dec +|Autologout: ¨Quedaches dormido o cortouse a li¤a? +|empaquetar nse. +|Alias (Enter se non queres ningun): +|Hala, Xa podes usa-la BBS +|Usuarios conectados a +|Nomme Porto Estado Localidade +|'Non molesten' DESACTIVADO +|'Non molesten' ACTIVADO +|Navegando +|Descargando +|Enviando +|S. Mensaxes +|Door Externa +|Charlando +|Ls. Ficheiros +SN|¨Queres descargar estas mensaxes [S/N]? +|No Banco +|Safe Door +|L. Conectados +|Offline Reader +|Teclea usuario ¢ que queres dar recado: +|Non hai usuario en +|Non quere que o molesten +|Teclea texto do recado (Max 76 Caracteres) +|** Mensaxe ** de +|A tua password caducou, nova password : +|Pulsa ENTER para seguir +|Non podes escribir, ­esta  rea es S¢ Lectura! +1|Escolle: 1) Editor de pantalla completa +|Upload de correo Off-Line +|O paquete recibido non ‚ v lido +|Comprimido con un compresor desco¤ecido +|O compresor non est  dispo¤ible +|Paquete de correo de tipo desco¤ecido +|Descarga de BlueWave +|Preparando paquete +|Comprimindo con +|Descarga fallida +|Descarga completa +|Actualizando punteiros de lectura +|Procesando paquete de respostas BlueWave +|ERRO no paquete +|Importando mensaxes +|Imposible escribir na  rea +|Mensaxes importadas +|Procesando Configuraci¢n Off-Line +|Areas seleccionadas +|Procesando peticions de ficheiros +|Descarga de QWK +|Procesando paquete de respostas QWK +|Descarga ASCII +SN|Crash [s/N]: +SN|Aviso: o nodo non ‚ CM, enviar immediato [s/N]: +YN|Adxuntar ficheiro [s/N]: +|Ficheiro +|adxuntado +|O ficheiro non esta en +|buzon - Email entrante/sainte +|archivo - Email Archivado +|papeleira - Papeleira, Email borrado +|Area # +|minutos. +|O editor funcionar  cas teclas de Emacs +|O editor funcionar  cas teclas de Wordstar +|Enderezo, m ximo 3 li¤as (solo o ver  o SysOp): +|Tes que po¤e-lo teu enderezo +|Enderezo vello: +|¨Queres usa-lo alias ( +SN|) nesta mensaxe? [S/n]: +|Non hai mais  reas con mensaxes sen ler. diff --git a/lang/source.nl b/lang/source.nl new file mode 100644 index 00000000..8d8ac1f6 --- /dev/null +++ b/lang/source.nl @@ -0,0 +1,480 @@ +|Geef Voor en Achternaam: +|Geef Achternaam: +|Verbreken gebruiker ... +|Doorzoeken gebruikers bestand ... +JN|Is Uw naam juist gespeld? [J/n] +|Log nu opnieuw in met de naam: +|Dit is een PRIVE Systeem. Tik "off" om eruit te gaan +|Markeer bestand nummer of toets voor stop +|Wachtwoord: +|Maximum aantal inlog pogingen overschreden ... +|Of Uw NAAM of Uw WACHTWOORD is fout +HR|Exporteer naar (H)ome of (R)egels directory: +|Bericht geexporteerd naar rules directory als +|Geen regels gevonden voor dit gebied +|Je mag dit bericht niet verwijderen +|Offline Reader: Uitgebreide Informatie is nu AAN +|Offline Reader: Uitgebreide Informatie is nu UIT +|Dit is geen normaal tekst bestand +|U mag maar +|keer tegelijk inloggen +|De door is in gebruik door een andere gebruiker, probeer het later nog eens +JN| Is dit juist [j/N]: +|Niet te verwerken +|Kies Uw karakter set +|Kies karakter set (Enter is Stop): +|Karakter set is nu: +JN|Kijk voor nieuwe post tijdens login [J/n]: +JN|Kijk voor nieuwe bestanden tijdens login [J/n]: +|Geef een korte reden om te kletsen +|De sysop kan niet kletsen via het bbs! Gebruik mbmon +|Sorry, de chatserver is niet beschikbaar +|lijn +| +| +| +| +| +|MBSE Bulletin Board Systeem - NIEUWE GEBRUIKER REGISTRATIE +|Gebruik deze naam: +|Geef een nieuw wachtwoord : +|Geef het wachtwoord opnieuw : +|De wachtwoorden zijn niet gelijk! Opnieuw. +|Uw wachtwoord moet minstens +|karakters bevatten! Opnieuw. +| +|Geef Uw Spraak Telefoonnummer +|Bericht weggeschreven naar Uw prive directory als: +|Geef het nummer in een goed formaat +|Geef Uw Data Telefoonnummer +|Geef Uw woonplaats: +|Geef een langere woonplaats naam +MV|Wat is Uw geslacht? (M)an of (V)rouw: +|Man +|Vrouw +|Antwoord met M of V +|Onbekend +|Geef Uw geboorte datum DD-MM-YYYY: +|Sorry maar dat is dit jaar. +|Gebruik het juiste datum formaat +|*** De Sysop komt erin om te kletsen *** +|*** De Sysop stopt met kletsen *** +JN=|Meer (J/n/=) +JN|Wilt U sneltoets menus? [J/n]: +|Antwoord met J of N +| +|Geen +|Selecteer Offline Reader berichten gebieden +|Uw gebruikers account is gemaakt: +|Inlog naam : +|Wachtwoord : +|onzichtbaar +|Nieuwe gebruiker registratie is klaar. +|Niet gevonden +|Oude woonplaats: +|Geef een langere woonplaats naam (minimaal +| +| +|Bericht bestaat niet +|News berichten staan nu AAN +|News berichten staan nu UIT +| +| +|Prive bericht, niet van U +|Geef het juiste datum formaat +|Bellers vandaag bij +|# Gebruiker Poort Tijd Keren Woonplaats +|Kan archiver file niet openenen. +|Kies je favourite archiver +|Kies archiver (Enter is Stop): +|Archiver is nu: +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +|Wijzig berichten handtekening +|De VAN, AAN en ONDERWERP velden zijn opties. +| Van: +| Aan: +|Onderwerp: +| Type maximaal 10 regels van 74 karakters per regel +|Beschikbare functies: +LVWAB|(L)ijst, (V)ervang tekst, (W)ijzig regel, (A)fbreken, (B)ewaar +|Kies: +|Afbreken ... +|Terug naar +|Wijzig welke regel: +|Regel bestaat niet. +|Oud wachtwoord: +|Nieuw wachtwoord: +|Bevestig nieuw wachtwoord: +|Wachtwoorden zijn niet gelijk! +|Het wachtwoord is gewijzigd +|Oude wachtwoord is fout! +|gebruikers lijst +|Geef gebruikersnaam zoekfragment of (Enter) voor alle gebruikers: +|Naam Woonplaats Laatst hier Hoevaak +|Zoekargument niet gevonden ... +|Tijd limiet overschreden ... verbreken! +JN=M|Meer (J/n/=) M=Markeer +|Scannen +|met +|TIJD STATISTIEK voor +|op +|Huidige tijd : +|Huidige datum : +|Verbindings tijd : +|Tijd gebruikt vandaag : +|Tijd over vandaag : +|Dagelijkse tijdslimiet : +|U heeft +JN|berichten, nu de post lezen? [J/n]: +|Er zijn geen nieuwe berichten in Uw postbus ... +|Sneltoetsen staan nu AAN +|Sneltoetsen staan nu UIT +|Aan +|Uit +|Gebruikersnaam bestaat al +|Even in Uw postbus kijken ... +|MBSE BBS Kletsen +|De Sysop is nu even met iemand anders in gesprek. +|Probeer het opnieuw in enkele minuten ... +|U heeft de Sysop meer dan het maximaal aantal keren geroepen. +|De Sysop is niet aanwezig ... laat een bericht achter +|Nieuw bericht in gebied: +|Van : +|Aan : +|Kontroleren gebruiker ... +|Gebruiker niet gevonden. Opnieuw proberen of (Enter) voor stop +|Onderwerp: +JN|Afbreken bericht [j/N] ?: +JN|Prive [j/N]: +|Begin nu met het bericht, Een lege regel is stoppen +|Maximaal 60 regels, 73 karakters per regel +|maximale berichtlengte overschreden +|Functies beschikbaar: (Huidig bericht: +|Regels) +|L - Lijst bericht B - Bewaar bericht D - Doorgaan bericht +|A - Afbreken W - Wissen regel I - Invoegen regel +|T - Tekst wijzigen R - Regel wijzigen V - Vervang regel +LBDADITRVC|C - Centreer regel +|Kies +|Doorgaan +|Wis +|Wis vanaf regel +|Afgebroken. +|Geef een nummer in het bereik van +|Wissen eindigt met regel +|Wijzig +|Geef regel # te wijzigen +|Invoegen +|Geef het regel # waarvoor in te voegen +|Lijst +|Geef regel # te vervangen +|De regel is: +|Onveranderd. +|De regel is nu: +|Stop +JN|Wet U het zeker [j/N]: +|Bericht afgebroken. +|Nee +|Tekst wijzigen +|Geef regel # te wijzigen +|Oude tekst : +|Nieuwe tekst: +|De regel is nu: +|Bewaar +|Een mogelijk VIRUS gevonden! +|Ok +|Uitpakken archief +|Opslaan bericht op disk +|Geef regel # te centreren +|De regel is op maximale breedte en kan niet worden gecentreerd. +|Er zijn geen berichten in dit gebied. +|Datum : +JN=|Meer (J/n/=/Gebied #): +|Aan : +|Van : +|Onderwerp: +|Reactie: +|Antwoord op: +|berichten in +OVLAPSWX|(O)pnieuw, (V)olgend, (L)aatst, (A)ntwoord, (P)laats, (W)is, (S)top, e(X)port +|(O)pnieuw, (V)olgend, (L)aatst, (A)ntwoord, (P)laats, (S)top, e(X)port +|Volgende +|FOUT +AVS|(A)ntwoord, (V)olgende, (S)top: +|Enter is zelfde onderwerp. +|# Van Aan Onderwerp +|Berichten gebied +|bevat +|berichten. +|Geef een bericht tussen +|Bericht nummer [ +|Nr. Soort Omschrijving Aantal Persoonlijk +|draad +|Geef de naam van de confrentie, of ? voor een lijst: +|Conferentie Gebied Tot. Omschrijving +|Wissen bericht +| Berichten gebieden +|Kies gebied: +|Ongeldig nummer opgegeven - Probeer het opnieuw ... +|Wachtwoord is fout +|Wachtwoord is goed +|U heeft niet genoeg autorisatie voor de lijst in dit gebied +|Kan de database niet openen voor dit gebied +|Upload door: +|GEWIST +| +JN|Node onbekend, toch doorgaan [j/N]: +|Aantal bestanden: +|FATAAL: kan de bestanden database niet openen +|U heeft niet genoeg autorisatie om uit dit gebied te downloaden. +|Geef de bestandsnaam: +|Geen bestandsnaam, Afgebroken. +|Ongeldige bestandsnaam! +|Sorry maar dat bestand is niet beschikbaar voor download +|U heeft +|extra download KBytes. +|U heeft niet genoeg tijd om dat bestand te downloaden. +|U heeft niet genoeg bytes over om te downloaden " +|U moet uploaden voordat U kunt downloaden. +|Kilobytes op dit moment beschikbaar: +|Kontroleren gemarkeerde bestanden, een ogenblik ... +|Verwijder selectie Offline Reader berichten gebieden +|FILEID.DIZ gevonden in +|Geen bestanden gemarkeerd voor download. +| +|De volgende conferentie(s) zijn geselecteerd: +|Bestand Grootte Datum +|Protocol: Kan protocollen bestand niet openen. +|Kies Uw favourite overdracht protocol +|Kies Protocol (Enter is Stop): +|Ongeldige keuze, Probeer het opnieuw! +|Het protocol is nu: +|Geef sleutelwoord om op te zoeken : +|Bestanden zoeken op sleutelwoord +|Accepteerd jokers zoals : *.zip, *.gz, *.* +| : *.zip is hetzelfde als .zip +|Geef bestandsnaam om naar te zoeken : +|Bestanden zoeken op naam +JN|Zoeken naar nieuwe bestanden sinds de laatste keer? [J/n]: +|Geef nieuwe datum om vanaf te zoeken [DD-MM-JJJJ]: +|Bestanden zoeken op datum +| +|Offline Reader Download +|U heeft niet genoeg rechten om in dit gebied te uploaden. +|U heeft niet genoeg vrije diskruimte om dit bestand te kopieren +|bestanden( +|bytes) gemarkeerd voor download. +|Dat bestand bestaat al op het systeem +|Begin u met Uw upload ... +|Upload is mislukt voor : +JN|Wilt U Uw upload beschermen met een wachtwoord ? [j/N]: +|ONTHOUDT: Wachtwoorden zijn "HoOfDLEtTer GeVoElIg!" +|Geef een omschrijving van bestand +|Uw upload tijd is terruggegeven. Bedankt voor de upload! +|Start kopieren: +|Kan de directory niet openen voor de lijst: +|Prive directory lijst voor +|Geef bestandsnaam om te wissen: +|Spijtig, maar verborgen bestanden mag U niet wissen ... +|Kan bestand niet wissen ... +|Ongeldige bestandsnaam, Probeer het opnieuw ... +|Bestand bestaat niet, Probeer het opnieuw ... +|Conferentie Omschrijving Aant. Pers. +| Bestanden gebieden +|Geef gebieds wachtwoord: +|Toevoegen BBS +|BBS Naam: +|Invoer is nodig ... +|Telefoon nummer: +|Sysop Naam: +|BBS Software: +|Diskruimte (GigaByte): +|Snelheden: +JN|Wilt U het BBS uitgebreider omschrijven? [J/n]: +|Geef een omschrijving voor +|BBS Lijst +|# BBS Naam Nummer Software GigaByte Snelheid +|Zoek een BBS +|Geef 3 letters van het BBS om op te zoeken: +|Ik heb minstens 3 letters nodig ... +JN|Bekijk dit BBS? [J/n]: +|Ik kon dat BBS niet vinden ... +|Toon een BBS +|Geef het nummer om te bekijken: +|Record bestaat niet +| Record : +| BBS Naam : +| Nummer : +| Software : +| GigaBytes : +| Snelheden : +| Sysop Naam : +| Beschikbaar : +| Invoer datum : +| Invoer naam : +|Verwijder BBS +|Geef het nummer om te verwijderen: +|Record +|is niet van U. +|is al gemarkeerd om te verwijderen +|gemarkeerd om te verwijderen +|De Sysop zal dit BBS verwijderen zodra hij +|heeft gezien dat er een record gemarkeerd is. +|Totaal aantal berichten gevonden: +|Onbekend menu kommando! +|Bewaren ... +|MBSE BBS Spreuken kunnen willekeurig verschijnen. +|Obscene en racistische opmerkingen worden verwijderd!! +|Geef hieronder Uw spreuk. U heeft 75 karakters. +|Spreuk toegevoegd +| # A Datum Gebruiker Omschrijving +| # Omschrijving +|Geef nummer om te bekijken: +|Verbonden vanaf +|Bestand(en): +|Grootte : +|Protocol : +|Bijwerken download tellers, een ogenblik ... +|Mislukt! +|Bytes +| # Geb. Aktief Grootte Prijs Bestand +|Ja +|Nee +SV|(S)chakel aktief, (V)erwijder alles, (ENTER) voor doorgaan: +|Geef bestand nummer, 1.. +|Gemarkeerd: +|Geen bestanden gemarkeerd. +|Vervang +|Het BBS wordt geladen, een moment ... +|Nieuwe of verwijderde berichten gebieden bij +|Geb. Status Soort Omschrijving +|Tonen nieuwe Post is nu AAN +|Tonen nieuwe Post is nu UIT +|Verwijder bestand: +JN|Zeker weten? [J/n]: +|Tonen nieuwe Bestanden is nu AAN +|Tonen nieuwe Bestanden is nu UIT +|U gebruikt nu de +12|Kies: 1) Volle scherm editer, 2) Externe editer +|Geen berichten gevonden voor download! +|Geef (Enter) voor doorgaan: +|Centreer +|Teveel berichten. Alleen de eerste +|Kies Uw favourite taal +|Kies taal: +|De taal is nu: +|Het systeem zal nu een "Unix gebruikersnaam" vragen +|Uw "Unix gebruikersnaam" is gemaakt, U kunt dit de volgende keer gebruiken. +|Geef een inlog naam (Maximaal 8 karakters, kleine letters) +|bv. Piet Snot, login = psnot +|login > +|Die login naam bestaat al, kies iets anders. +|Regel +|Volle scherm +|Externe +|Textverwerker +|Nieuw +|Lokaal +|Netmail +|Echomail +|Nieuws +|E-Mail +|Gewist +|Jan +|Feb +|Mrt +|Apr +|Mei +|Jun +|Jul +|Aug +|Sep +|Okt +|Nov +|Dec +|Autologuit: non-aktief tijd bereikt. +|worden ingepakt! +|Geef Uw Alias (Enter voor geen): +|Je kunt het bbs nu gaan gebruiken +|Gebruikers aanwezig bij +|Naam Poort Bezig met Woonplaats +|Niet storen staat nu UIT +|Niet storen staat nu AAN +|Rondkijken +|Downloaden +|Uploaden +|Berichten +|Extern Prog. +|Kletsen +|Bestanden +JN|Wilt U deze berichten downloaden [J/n]? +|Tijd Bank +|Kluis kraken +|Wie is hier +|Offline Reader +|Geef de gebruikersnaam waar het bericht heen moet: +|Sorry, er is niemand op +|wil niet gestoord worden +|Geef te versturen bericht (Maximaal 76 karakters) +|** Bericht ** van +|Uw wachtwoord is verlopen, geef nieuw wachtwoord: +|Toets ENTER voor doorgaan +|Plaatsen berichten niet toegestaan, dit gebied is alleen lezen! +1|Kies: 1) Volle scherm editer +|Offline Reader Upload +|Ongeldig pakket ontvangen +|Onbekende compressie methode +|Compressie programma niet beschikbaar +|Onbekend type mail pakket +|BlueWave Offline download +|Voorbereiden pakket +|Comprimeren met +|Download mislukt +|Download is gelukt +|Bijwerken laatstgelezen wijzers +|Verwerken BlueWave antwoord pakket +|FOUT in pakket +|Inlezen berichten +|Geen schrijftoegang in gebied +|Berichten ingelezen +|Verwerken Offline Configuratie +|Berichten gebieden gelecteerd +|Verwerken bestands verzoeken +|QWK Offline Download +|Verwerken QWK antwoord pakket +|ASCII Offline Download +JN|Direct [j/N]: +JN|Let op: node is niet CM, onmiddelijk sturen [j/N]: +JN|Bestand meesturen [j/N]: +|Bestand +|wordt meegestuurd +|Bestand niet binnen +|mailbox - Inkomende en uitgaande post +|archive - Het archief van Uw email +|trash - De vuilnisbak, oude email. +|Gebied # +|minuten. +|Schermgestuurde Tekstverwerker sneltoetsen ingesteld als Emacs +|Schermgestuurde Tekstverwerker sneltoetsen ingesteld als Wordstar +|Geef adres, maximaal 3 regels (alleen zichtbaar voor de sysop): +|U moet hier Uw adres opgeven +|Oude adres: +|Use your alias ( +YN|) to post this message [Y/n]: +|Geen gebieden meer met ongelezen berichten diff --git a/lang/source.zh b/lang/source.zh new file mode 100644 index 00000000..8498fe8b --- /dev/null +++ b/lang/source.zh @@ -0,0 +1,480 @@ +|ÇëÊäÈëÃûºÍÐÕ(Æ´Òô): +|ÇëÊäÈëÐÕ: +|Disconnecting user ... +|ËÑË÷Óû§Îļþ ... +YN|Did you spell your name correctly? [Y/n] +|You need to login again with the name: +|This is a PRIVATE System. Type "off" to leave +|Mark file number or press to stop +|ÃÜÂë: +|Maximum login attempts have been exceeded ... +|Either your NAME or PASSWORD is incorrect +HR|Export to (H)ome or (R)ules directory: +|Message exported to rules directory as +|No rules found for this area +|You are not allowed to delete that message +|Offline Reader: Extended Info turned ON +|Offline Reader: Extended Info turned OFF +|This is not a plain textfile. +|You may only login +|times at the same time +|The door is in use by another user, try again later +YN| Is this correct [y/N]: +|Could not parse +|Select your preferred character set +|Select character set (Enter to Quit): +|Character set now set to: +YN|Check for new mail at login [Y/n]: +YN|Check for new files at login [Y/n]: +|Enter a short reason for chat +|The Sysop cannot use the bbs to chat! Use mbmon to chat +|Sorry, the chatserver is not available +|line +| +|‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄ +|‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄ +|ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ +|ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ +|MBSE Bulletin Board System - NEW USER REGISTRATION +|Use this name: +|ÇëÊäÈëÐÂÃÜÂë : +|ÇëÔÙ´ÎÊäÈëÐÂÃÜÂë : +|Á½´ÎÊäÈëµÄÃÜÂ벻ͬ! ÖØÊÔ. +|ÄãµÄÃÜÂ볤¶È²»ÄÜÉÙÓÚ +|¸ö×Ö·û! ÖØÊÔ. +| +|Please enter you Voice Number +|Message exported to your private directory as: +|Please enter a proper phone number +|Please enter you Data Number +|Please enter your location: +|Please enter a longer location +MF|What is your sex? (M)ale or (F)emale: +|Male +|Female +|Please answer M or F +|Unknown +|Please enter your Date of Birth DD-MM-YYYY: +|Sorry you entered this year by mistake. +|Please enter the correct date format +|*** Sysop is starting chat *** +|*** Sysop has terminated chat *** +YN=|More (Y/n/=) +YN|Would you like Hot-Keyed menus? [Y/n]: +|Please answer Y or N +| +|None +|Tag Offline Reader message areas +|Your user account has been created: +|Login Name : +|Password : +|not displayed +|New user registration completed. +|Could not find +|Old Location: +|Please enter a longer location (min +| +| +|Message doesn't exist +|News bulletins turned ON +|News bulletins turned OFF +| +| +|Private message, not owner +|Please enter the correct date format +|Todays Callers to +|# User Name Device TimeOn Calls Location +|Can't open archiver file. +|Select your preferred archiver +|Select Archiver (Enter to Quit): +|Archiver now set to: +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +|Edit message signature +|The FROM, TO and SUBJECT fields are optional. +| From: +| To: +|Subject: +| Type up to 10 lines 74 Characters per line +|Functions available: +LREAS|(L)ist, (R)eplace text, (E)dit line, (A)bort, (S)ave +|Select: +|Aborting... +|Returning to +|Edit which line: +|Line does not exist. +|Old Password: +|New password: +|Confirm new password: +|Passwords do not match! +|Password Change Successful +|Old password incorrect! +|User List +|Enter Username search string or (Enter) for all users: +|Name Location Last On Calls +|Could not find search string ... +|Time limit exceeded ... disconnecting! +YN=M|More (Y/n/=) M=Mark +|Scanning +|with +|TIME STATISTICS for +|on +|Current Time : +|Current Date : +|Connect time : +|Time used today : +|Time remaining today : +|Daily time limit : +|You have +YN|messages, read your mail now? [Y/n]: +|You have no new mail in your mail box ... +|Hotkeys are now ON +|Hotkeys are now OFF +|On +|Off +|User name already exists +|Checking your mail box ... +|MBSE BBS Chat +|The SysOp is currently speaking to somebody else. +|Try paging him again in a few minutes ... +|You have paged the Sysop the maximum times allowed. +|Sysop currently is not available ... please leave a comment +|Posting message in area: +|From : +| To : +|Verifying user ... +|User not found. Try again, or (Enter) to quit +|Subj : +YN|Abort Message [y/N] ?: +YN|Private [y/N]: +|Begin your message now, Blank line to end +|Maximum of 60 lines, 73 characters per line +|Maximum message length exceeded +|Functions available: (Current Message: +|Lines) +|L - List message S - Save message C - Continue message +|Q - Quit message D - Delete line I - Insert line +|T - Text edit E - Edit line R - Replace line +LSCQDITERZ|Z - Center line +|Select +|Continue +|Delete +|Delete starting at line +|Aborted. +|Please enter a number in the range of +|Delete ending at line +|Edit +|Enter line # to edit +|Insert +|Enter line # to insert text before +|List +|Enter line # to replace +|Line reads: +|Unchanged. +|Line now reads: +|Quit +YN|Are you sure [y/N]: +|Message aborted. +|No +|Text Edit +|Enter line # to edit +|Text to replace : +|Replacement text : +|Line now reads: +|Save +|Possible VIRUS found! +|Ok +|Unpacking archive +|Saving message to disk +|Enter line # to center +|Line is maximum length and cannot be centered +|There are no messages in this area. +|Date : +YN=|More (Y/n/=/Area #): +|To : +|From : +|Subject : +|Next reply: +|Reply to: +|messages in +ANLREQDX|(A)gain, (N)ext, (L)ast, (R)eply, (E)nter, (D)el, (Q)uit, e(X)port +|(A)gain, (N)ext, (L)ast, (R)eply, (E)nter, (Q)uit, e(X)port +|Next +|ERROR +RNQ|(R)eply, (N)ext, (Q)uit: +|Enter to keep Subject. +|# From To Subject +|Message area +|contains +|messages. +|Please enter a message between +|Message number [ +|Area Type Description Messages Personal +|thread +|Enter the name of the conference, or ? for a list: +|Conference Area Msgs Description +|Deleting message +| Message Areas +|Select Area: +|Invalid area specified - Please try again ... +|Password is incorrect +|Password is correct +|You don't have enough security to list this area +|Can't open file database for this area +|Uploaded by: +|D E L E T E D +| +YN|Node not known, continue anyway [y/N]: +|Total Files: +|FATAL: Unable to open areas database +|You do not have enough access to download from this area. +|Please enter filename: +|No filename entered, Aborting. +|Illegal Filename! +|Sorry that file is unavailable for download +|You have +|extra download KBytes. +|You do not have enough time to download that file. +|You do not have enough bytes to download " +|You must upload before you can download. +|Kilobytes currently available: +|Checking your marked downloads, please wait... +|Untag Offline Reader message areas +|Found FILEID.DIZ in +|No files marked for download. +| +|You have selected the following Conference(s): +|Filename Size Date +|Protocol: Can't open protocol file. +|Select your preferred file transfer protcol +|Select Protocol (Enter to Quit): +|Ivalid selection, please try again! +|Protocol now set to: +|Enter keyword to use for Search: +|File Search by Keyword +|Accepts wildcards such as : *.zip, *.gz, *.* +| : *.zip is the same as .zip +|Enter filename to search for : +|File Search by Filename +YN|Search for new since your last call [Y/n]: +|Enter new date to search for [DD-MM-YYYY]: +|File Search by Date +| +|Offline Reader Download +|You do not have enough access to upload to this area. +|You have not enough diskspace free to copy this file +|files( +|bytes) marked for download. +|The file already exists on the system +|Please start your upload now ... +|Upload was unsuccessful for: +YN|Do you want to password protect your upload ? [y/N]: +|REMEMBER: Passwords are "CaSe SeNsITiVe!" +|Please enter description of file +|Your upload time has been returned to you. Thank you for your upload! +|Start copy: +|Can't open directory for listing: +|Home directory listing for +|Please enter filename to delete: +|Sorry you may not delete hidden files ... +|Unable to delete file ... +|Invalid filename, please try again ... +|File does not exist, please try again ... +|Forum Description Msgs. Pers. +| File Areas +|Please enter Area Password: +|Adding BBS +|BBS Name: +|Response needed ... +|Phone Number: +|Sysop Name: +|BBS Software: +|Storage (GigaByte): +|Speeds: +YN|Would you like to add a extended discription? [Y/n]: +|Please a enter discription for +|BBS Listing +|# BBS Name Number Software GigaByte Speed +|Search for a BBS +|Please enter 3 letters of BBS to search for: +|I need at least 3 letters ... +YN|View this BBS? [Y/n]: +|Could not find the BBS Listed ... +|Show a BBS +|Please enter number to list: +|Record does not exist +| Record : +| BBS Name : +| Number : +| Software : +| GigaBytes : +| Speeds : +| Sysop Name : +| Available : +| Date of Entry : +| Entry Name : +|Delete BBS +|Please enter number to delete: +|Record +|does not belong to you. +|already marked for deletion +|marked for deletion +|The Sysop will purge the list once he has +|seen you have marked a record for deletion. +|Total messages found: +|Unknown Menu Command! +|Saving... +|MBSE BBS Oneliners will randomly appear on the main menu. +|Obscene or libellous oneliners will be deleted!! +|Please enter your oneliner below. You have 75 characters. +|Oneliner added +| # A Date User Description +| # Description +|Please enter number to list: +|Connected from +|File(s) : +|Size : +|Protocol : +|Updating download counters, please wait ... +|Failed! +|Bytes +| # Area Active Size Cost File +|Yes +|No +TE|(T)oggle active, (E)rase all, (ENTER) to continue: +|Enter file number, 1.. +|Marked: +|No files tagged. +|Replace +|Loading BBS, please wait ... +|New or deleted mail areas at +|Area State Type Description +|New Mail check is now ON +|New Mail check is now OFF +|Delete file: +YN|Are you Sure? [Y/n]: +|New Files check is now ON +|New Files check is now OFF +|Now using the +12|Select: 1) Fullscreen editor, 2) External editor +|No messages found to download! +|Press (Enter) to continue: +|Center +|Too much messages. Only the first +|Select your preferred language +|Select Language: +|Language now set to: +|The system will now ask you for a "Unix Account" +|Your "Unix Account" is created, you may use it the next time you call. +|Please enter a login name (Maximum 8 characters) +|ie. John Doe, login = jdoe +|login > +|That login name already exists, please choose another one. +|Line +|Fullscreen +|External +|Editor +|New +|Local +|Netmail +|Echomail +|News +|E-Mail +|Del +|Jan +|Feb +|Mar +|Apr +|May +|Jun +|Jul +|Aug +|Sep +|Oct +|Nov +|Dec +|Autologout: idletime reached. +|Will be packed! +|Enter your handle (Enter for none): +|You are now ready to use the bbs +|Callers On-Line to +|Name Device Status Location +|Do not disturb turned OFF +|Do not disturb turned ON +|Browsing +|Downloading +|Uploading +|Msg Section +|External Door +|Chatting +|Listing Files +YN|Do you want to download these messages [Y/n]? +|Banking Door +|Safe Door +|WhosOn List +|Offline Reader +|Please enter username to send message to: +|Sorry, there is no user on +|doesn't wish to be disturbed +|Please enter in message to send (Max 76 Characters) +|** Message ** from +|Your password is expired, new password : +|Press ENTER to continue +|Posting not allowed, this area is Read Only! +1|Select: 1) Fullscreen editor +|Offline Reader Upload +|Invalid packet received +|Unknown compression type +|Archiver not available +|Unknown type mailpacket +|BlueWave Offline download +|Preparing packet +|Packing with +|Download failed +|Download successfull +|Updating lastread pointers +|Processing BlueWave reply packet +|ERROR in packet +|Import messages +|No Write access to area +|Messages imported +|Processing Offline Configuration +|Message areas selected +|Processing file requests +|QWK Offline Download +|Processing QWK reply packet +|ASCII Offline Download +YN|Crash [y/N]: +YN|Warning: node is not CM, send immediate [y/N]: +YN|Attach file [y/N]: +|File +|will be attached +|File not within +|mailbox - Incoming and outgoing email +|archive - Archive of your email +|trash - Trashcan, your old email +|Area # +|minutes. +|Fullscreen Editor shortcut keys set to Emacs +|Fullscreen Editor shortcut keys set to Wordstar +|Your address, maximum 3 lines (only visible for the sysop): +|You need to enter your address here +|Old address: +|Use your alias ( +YN|) to post this message [Y/n]: +|No more areas with unread messages diff --git a/lib/.cvsignore b/lib/.cvsignore new file mode 100644 index 00000000..3866a77d --- /dev/null +++ b/lib/.cvsignore @@ -0,0 +1 @@ +filelist ftscprod.c diff --git a/lib/Diesel.doc b/lib/Diesel.doc new file mode 100644 index 00000000..8a59093b --- /dev/null +++ b/lib/Diesel.doc @@ -0,0 +1,294 @@ + + T U R B O D I E S E L + Template-based Uncomplicated Report-Building Oriented Dumb + Interpretively Evaluated String Expression Language + +This is a modified version of diesel language. Diesel is a interpreted +macro language, used in AutoCAD and released to public domain by AutoDesk. + +Modified version by Redy Rodriguez, for use in mbsebbs. Original diesel +language can be found at http://www.fourmilab.ch/diesel. + +This "Dumb Interpretively Executed String Expression Language" is the +kernel of a macro language you can customise by adding C code and +embedding it into your program. + +It is short, written in portable C, and is readily integrated into any +program. It is useful primarily to programs which need a very rudimentary +macro expansion facility without the complexity of a full language such as +Lisp or FORTH. + +DIESEL copies its input directly to the output until a macro character, +"@" or quoted string is encountered. Quoted strings may be used to +suppress evaluation of sequences of characters which would otherwise be +interpreted as macros. Quote marks may be included in quoted strings by +two adjacent quote marks. For example: + + "@(if,1,True,False)="""@(if,1,True,False)"""" + +Status retrieval, computation, and display are performed by DIESEL +functions. The available functions are as follows. User-defined +functions are not implemented; what you see is all you've got. Naturally, +if you embed DIESEL in your application, you'll add functions that provide +access to information and actions within your own program. DIESEL's +arithmetic functions accept either floating point or integer arguments, +and perform all calculations in floating point. + +TURBODIESEL facilities +---------------------- + +If a line begin with # then will be not evaluated, and any output is done. + +If a line begin with @! any output is done, but evaluation is performed. + +If a line begin with @{} produces output only if expression is +TRUE (Any non-zero numeric value). + +To easily format output, you can use one-char variable names as follow: + + @A will be replaced by result of evaluate @(GETVAR,A). + + @A_____ will be replaced by result of evaluate @(GETVAR,A) truncated or +padded with spaces to complete same lenght of '@A_____' (7 in that case). + + You can use > or < to especify alignement rigth or left: + + @A_____> @A_____< + + +TURBODIESEL String Functions +---------------------------- + + @(+,,,...) + The sum of the numbers , , ... is returned. + + @(-,,,...) + The result of subtracting the numbers through from + is returned. + + @(*,,,...) + The result of multiplying the numbers ,,... is + returned. + + @(/,,,...) + The result of dividing the number by ,... is + returned. + + @(=,,) + If the numbers and are equal 1 is returned, + otherwise 0 is returned. + + @(<,,) + If the number is less than 1 is returned, otherwise + 0 is returned. + + @(>,,) + If the number is greater than 1 is returned, + otherwise 0 is returned. + + @(!=,,) + If the numbers and are not equal 1 is returned, + otherwise 0 is returned. + + @(<=,,) + If the number is less than or equal to 1 is + returned, otherwise 0 is returned. + + @(>=,,) + If the number is greater than or equal to 1 is + returned, otherwise 0 is returned. + + @(AND,,,...) + The bitwise logical AND of the integers through is + returned. + + @(EQ,,) + If the strings and are identical 1 is returned, + otherwise 0. + + @(EVAL,) + The string is passed to the DIESEL evaluator and the result + of evaluating it is returned. + + @(FIX,) + The real number is truncated to an integer by discarding + any fractional part. + + @(IF,,,) + If is nonzero, is evaluated and returned. + Otherwise, is evaluated and returned. Note that the + branch not chosen by is not evaluated. + + @(INDEX,,) + is assumed to contain one or more values delimited by the + macro argument separator character, comma. selects one of + these values to be extracted, with the first item numbered zero. + +* @(LOWER,) + The is returned converted to lower case according to the + rules of the current locale. + + @(NTH,,,,) + Evaluates and returns the argument selected by . If + is 0, is returned, and so on. Note the difference + between @(NTH) and @(INDEX); @(NTH) returns one of a series of + arguments to the function while @(INDEX) extracts a value from a + comma-delimited string passed as a single argument. Arguments not + selected by are not evaluated. + + @(OR,,,...) + The bitwise logical OR of the integers through is + returned. + +* @(STRCMP,,) + Compare strings and returns -1 if is less than , 0 if + both are equals, or 1 if is greater than . + + @(STRFILL,,) + Returns the result of concatenating of . + + @(STRLEN,) + Returns the length of in characters. + +* @(STRSTR,,) + Find first apparition of in , and return the position + or 0 if not found. + + @(SUBSTR,,,) + Returns the substring of starting at character + and extending for characters. Characters in the string + are numbered from 1. If is omitted, the entire remaining + length of the string is returned. + + @(UPPER,) + The is returned converted to upper case according to the + rules of the current locale. + + @(XOR,,,...) + The bitwise logical XOR of the integers through is + returned. + +Variable Extensions +------------------- + +The base-line DIESEL includes no user-defined variables. This allows +DIESEL to avoid allocating any local memory and renders it totally +reentrant. If you compile DIESEL with the tag VARIABLES defined, the +following additional functions are included which provide variable +definition and access. Note that these functions call malloc() and +strdup() and thus consume heap storage. + +Variable names are case sensitive. + +If you want easily format output you must use one-char variable names +then you can format output as @V_____, @X_____< or @k___>. See above. + + @(GETVAR,varname) + Returns the value stored in . If no variable with + the name exists, a bad argument error is reported. + + @(SETVAR,varname,value) + Stores the string into . If no variable + called exists, a new variable is created. + +* @(CLEAR) + Clear all variables. + +Unix Extensions +--------------- + +If you compile DIESEL with the tag UNIXTENSIONS defined, the following +additional functions will be available: + +@(GETENV,varname) + Returns the variable from the environment. If no such + variable is defined, returns the null string. + +@(TIME) + Returns the current time in Unix fashion, as the number of seconds + elapsed since 00:00:00 GMT January 1, 1970. + +@(EDTIME,