diff --git a/.hgignore b/.hgignore index f8840859..f92a7446 100644 --- a/.hgignore +++ b/.hgignore @@ -2,10 +2,13 @@ FILE_ID.DIZ INSTALL Makefile.global -autom4te.cache -config.cache config.h config.log config.status paths.h stamp-h +html/basic.html +html/index.htm +html/upgrade.html +script/editor +unix/login.defs diff --git a/FILE_ID.DIZ.in b/FILE_ID.DIZ.in new file mode 100644 index 00000000..260e7ee2 --- /dev/null +++ b/FILE_ID.DIZ.in @@ -0,0 +1,24 @@ +-= MBSE BBS System v@VERSION@ for Unix =- +MBSE BBS is a full Fidonet capable ANSI bbs +package including a mailer, tosser, ticfile +processor, filefind and other utilities. +The bbs supports full configurable ANSI +menus, multiple languages, standard file +transfer protocols, native GNU/Linux doors, +DOS doors using dosemu and BlueWave and QWK +offline readers. +The mailer supports FTS-0001, YooHoo/2U2, +EMSI protocols over modem, TCP/IP IFC and +Binkp protocols. Zedzap, Zmodem, Telink and +Hydra file transfer protocols. Full FTN mail +support, including automatic routing for hub +and host systems. +Internal mail format is JAM (c) messagebase. +Full tic file support, including extended +tic files. +OS: GNU/Linux and *BSD, 32/64 bit versions. +Originating sites 2:280/2802@fidonet and +http://www.mbse.eu/ +Copyright by Michiel Broek. +Released under the terms of the GNU Public +License. diff --git a/INSTALL.in b/INSTALL.in new file mode 100644 index 00000000..02b4c05a --- /dev/null +++ b/INSTALL.in @@ -0,0 +1,252 @@ + New installation procedure. + --------------------------- + +The old initial system setup was a little tricky and didn't work on some +systems. This procedure is tested on Slackware, RedHat, Mandrake, SuSE and Debian. +I have not tested on other distributions. Installation is now done by a +script which will do the dirty work. This script can be executed once only, +unless you undo all changes the script has done. Basicly, if you already +have installed MBSE BBS, or there are parts left of an old installation, the +script will abort and inform you why. I hope this will give a better and more +universal setup on most distributions. + + + + Installing MBSE BBS for the first time. + --------------------------------------- + +Login as root and type the following commands to do the basic install: + +cd /tmp +tar xfvj /@prefix@/@PACKAGE@-@VERSION@.tar.bz2 +cd @PACKAGE@-@VERSION@ +bash ./SETUP.sh + +This will setup a new directory structure @prefix@ and create's some +necessary users. If this in successfull, logout and login as user "mbse". +To build and install mbse bbs type the following commands: + +cd +tar xfvj /pathtopackage/@PACKAGE@-@VERSION@.tar.bz2 +cd @PACKAGE@-@VERSION@ +./configure +make +su +[type rootpassword] +make install +exit +@prefix@/bin/mbtask + +Note: On XxxBSD systems, use gmake instead of make. +The next step is to read the documentation in @prefix@/html with a browser. +After your system is configured and tested type "sh ./CRON.sh" to install +a default crontab for the bbs. + + + Upgrading MBSE BBS on a running system. + --------------------------------------- + +Login as user "mbse", backup your bbs configuration, and then type the +following commands: + +cd +tar xfvj /pathtopackage/@PACKAGE@-@VERSION@.tar.bz2 +cd @PACKAGE@-@VERSION@ +./configure +make +su +[type rootpassword] +make install +exit + +Read the ChangeLog file for update instructions from the version +you were running and the version you have just installed over the old +version. Perform the upgrades step by step, version by version. + + +Next the instructions for the standard GNU installation programs: + + +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`@prefix@/bin', `@prefix@/etc', etc. You can specify an +installation prefix other than `@prefix@' by giving `configure' the +option `--prefix=PATH'. This is NOT ADVISED for MBSE BBS!!! + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. + diff --git a/Makefile.global.in b/Makefile.global.in new file mode 100644 index 00000000..aa2817c9 --- /dev/null +++ b/Makefile.global.in @@ -0,0 +1,46 @@ +# Compile-time configuration for MBSE FidoNet/Internet BBS +# $Id: Makefile.global.in,v 1.16 2007/05/27 14:12:52 mbse Exp $ + +MAJOR = @MAJOR@ +MINOR = @MINOR@ +REVISION = @REVISION@ +VERSION = @MAJOR@.@MINOR@.@REVISION@ +PACKAGE = @PACKAGE@ + +# for make install, where to put binaries and what owner to set +SUBDIRS = @SUBDIRS@ +PREFIX = @prefix@ +BINDIR = @prefix@/bin +ETCDIR = @prefix@/etc +DOCDIR = @prefix@/doc +VARDIR = @prefix@/var +INTDIR = @prefix@/share/int +OWNER = @OWNER@ +GROUP = @GROUP@ +ROWNER = @ROWNER@ +RGROUP = @RGROUP@ +MODE = 0711 +SMODE = 6711 + +CHOWN = @CHOWN@ +INSTALL = @INSTALL@ +RANLIB = @RANLIB@ +LN_S = @LN_S@ +SHELL = /bin/sh +ECHO = echo -e +CC = @CC@ +AWK = @AWK@ +TAR = @TAR@ +ZIP = @ZIP@ +MAKE = @MAKE@ + +# joe editor +JOEBIN = @joebin@ +JOELIB = @joelib@ + +CFLAGS = @CFLAGS@ +LIBS = @LIBS@ +DEFS = @DEFS@ +LDFLAGS = @LDFLAGS@ +CPPFLAGS = @CPPFLAGS@ + diff --git a/config.h.in b/config.h.in new file mode 100644 index 00000000..8a70e2ee --- /dev/null +++ b/config.h.in @@ -0,0 +1,273 @@ +/* config.h.in. */ +/* $Id: config.h.in,v 1.49 2007/08/25 21:01:03 mbse Exp $ */ + +#undef SHORTRIGHT +#undef COPYRIGHT +#undef VERSION_MAJOR +#undef VERSION_MINOR +#undef VERSION_REVISION +#undef VERSION + +/* According to Sun we MUST define this in the source */ +#define _REENTRANT 1 + +/* Compile experimental code (may not be present) */ +#undef USE_EXPERIMENT + +/* Compile full newsgate */ +#undef USE_NEWSGATE + +/* Has strcasestr function */ +#undef HAVE_STRCASESTR + +/* If you have gettimeofday function */ +#undef HAVE_DECLARED_TIMEZONE +#undef HAVE_TM_GMTOFF + +/* From unix: */ +#undef SHADOW_PASSWORD +#undef AGING +#undef ATT_AGE +#undef ATT_COMMENT +#undef AUTH_METHODS +#undef CKDEFS +#undef DOUBLESIZE + +/* Defined if you have libcrack. */ +#undef HAVE_LIBCRACK + +/* Defined if you have the ts&szs cracklib. */ +#undef HAVE_LIBCRACK_HIST + +/* Defined if it includes *Pw functions. */ +#undef HAVE_LIBCRACK_PW + +/* Defined if you have libutil.h */ +#undef HAVE_LIBUTIL_H + +/* Defined if you have util.h */ +#undef HAVE_UTIL_H + +/* Defined if you have sys/types.h */ +#undef HAVE_SYS_TYPES_H + +/* Defined if it includes *Pw functions. */ +#undef HAVE_LIBCRACK_PW + +#undef KEEP_NIS_AT_END + +/* Define to support the MD5-based password hashing algorithm. */ +#undef MD5_CRYPT +#undef PAM + +/* Define to support OPIE one-time password logins. */ +#undef OPIE +#undef SW_CRYPT + +/* Define to 1 if NLS is requested. */ +#undef ENABLE_NLS + +/* Path for lastlog file. */ +#undef LASTLOG_FILE + +/* Define to support /etc/login.access login access control. */ +#undef LOGIN_ACCESS + +/* Path to vpopmail. */ +#undef _VPOPMAIL_PATH + +/* Path for wtmp file. */ +#undef _WTMP_FILE + +/* Define if you have the updwtmp function. */ +#undef HAVE_UPDWTMP + +/* Define if you have the updwtmpx function. */ +#undef HAVE_UPDWTMPX + +/* Define if you have the header file. */ +#undef HAVE_LASTLOG_H + +/* Define if you have the initgroups function. */ +#undef HAVE_INITGROUPS + +/* Define if you have ut_host in struct utmp. */ +#undef UT_HOST + +/* Path for utmp file. */ +#undef _UTMP_FILE + +/* Define if you have the `a64l' function. */ +#undef HAVE_A64L + +/* Define if you have the `c64i' function. */ +#undef HAVE_C64I + +/* Define if you have the header file, and it defines `DIR'. */ +#undef HAVE_DIRENT_H + +/* Define if you have the `fchmod' function. */ +#undef HAVE_FCHMOD + +/* Define if you have the `fchown' function. */ +#undef HAVE_FCHOWN + +/* Define if you have the `fdatasync' function. */ +#undef HAVE_FDATASYNC + +/* Define if you have the `fsync' function. */ +#undef HAVE_FSYNC + +/* Define if you have the `gettimeofday' function. */ +#undef HAVE_GETTIMEOFDAY + +/* Define if you have the header file. */ +#undef HAVE_GSHADOW_H + +/* Define if you have the `lckpwdf' function. */ +#undef HAVE_LCKPWDF + +/* Define if you have the header file, and it defines `DIR'. */ +#undef HAVE_NDIR_H + +/* Define if you have the `putpwent' function. */ +#undef HAVE_PUTPWENT + +/* Define if you have the putspent function. */ +#undef HAVE_PUTSPENT + +/* Define if you have the putgrent function. */ +#undef HAVE_PUTGRENT + +/* Define if you have the header file. */ +#undef HAVE_SHADOW_H + +/* Define if `tm_zone' is member of `struct tm'. */ +#undef HAVE_STRUCT_TM_TM_ZONE + +/* Define if you have the header file, and it defines `DIR'. */ +#undef HAVE_SYS_DIR_H + +/* Define if you have the header file, and it defines `DIR'. */ +#undef HAVE_SYS_NDIR_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_RESOURCE_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_VFS_H + +/* Define if you have that is POSIX.1 compatible. */ +#undef HAVE_SYS_WAIT_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TERMIO_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TERMIOS_H + +/* Define if you have the header file. */ +#undef HAVE_TERMIO_H + +/* Define if you have the header file. */ +#undef HAVE_TERMIOS_H + +/* Define if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the header file. */ +#undef HAVE_USERSEC_H + +/* Define if you have the header file. */ +#undef HAVE_SGTTY_H + +/* Define if you have the header file. */ +#undef HAVE_UTMP_H + +/* Define if you have the header file. */ +#undef HAVE_UTMPX_H + +/* Define if you have the memcpy function. */ +#undef HAVE_MEMCPY + +/* Define if you have the memset function. */ +#undef HAVE_MEMSET + +/* Name of package */ +#undef PACKAGE + +/* Define as the return type of signal handlers (`int' or `void'). */ +#undef RETSIGTYPE + +/* Define if the `S_IS*' macros in do not work properly. */ +#undef STAT_MACROS_BROKEN + +/* Define if you have the statfs function */ +#undef HAVE_STATFS + +/* Define if you have the statvfs function */ +#undef HAVE_STATVFS + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if you can safely include both and . */ +#undef TIME_WITH_SYS_TIME + +/* Define if your declares `struct tm'. */ +#undef TM_IN_SYS_TIME + +/* Define if `lex' declares `yytext' as a `char *' by default, not a `char[]'. */ +#undef YYTEXT_POINTER + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to `int' if doesn't define. */ +#undef gid_t + +/* Define to `int' if does not define. */ +#undef mode_t + +/* Define to `long' if does not define. */ +#undef off_t + +/* Define to `int' if does not define. */ +#undef pid_t + +/* Define to `unsigned' if does not define. */ +#undef size_t + +/* Define to `int' if doesn't define. */ +#undef uid_t + +/* Define to `int' if doesn't define. */ +#undef ssize_t + +/* Define as `fork' if `vfork' does not work. */ +#undef vfork + +/* Define if you have the header file. */ +#undef HAVE_ZLIB_H + +/* Define if you have the header file. */ +#undef HAVE_BZLIB_H + +/* Define if machine is bigendian */ +#undef WORDS_BIGENDIAN + +/* Define if Del != 207 */ +#define GBK_DEL @GBK_DEL@ + +/* Define if you have the header file. */ +#undef HAVE_CRYPT_H + +/* Define if you have the header file. */ +#undef HAVE_ICONV_H + +/* Define if you have the header file. */ +#undef HAVE_GEOIP_H + diff --git a/paths.h.in b/paths.h.in new file mode 100644 index 00000000..381b5cf9 --- /dev/null +++ b/paths.h.in @@ -0,0 +1,58 @@ +/* + * $Id: paths.h.in,v 1.6 2004/04/11 12:36:02 mbroek Exp $ + * + * Autogenerated by configure + */ + +/* + * Paths to archivers + */ +#define _PATH_COMPRESS "@COMPRESS@" +#define _PATH_GZIP "@GZIP@" +#define _PATH_ARC "@ARC@" +#define _PATH_NOMARCH "@NOMARCH@" +#define _PATH_ARJ "@ARJ@" +#define _PATH_UNARJ "@UNARJ@" +#define _PATH_LHA "@LHA@" +#define _PATH_RAR "@RAR@" +#define _PATH_UNRAR "@UNRAR@" +#define _PATH_TAR "@TAR@" +#define _PATH_ZIP "@ZIP@" +#define _PATH_UNZIP "@UNZIP@" +#define _PATH_ZOO "@ZOO@" +#define _PATH_HA "@HA@" + + + +/* + * Path to convert, to create thumbnails. + */ +#define _PATH_CONVERT "@CONVERT@" + + + +/* + * Paths to some virus scanners + */ +#define _PATH_ANTIVIR "@ANTIVIR@" +#define _PATH_FPROT "@FPROT@" +#define _PATH_UVSCAN "@UVSCAN@" +#define _PATH_CLAMAV "@CLAMAV@" + + +/* + * File transfer protocols + */ +#define _PATH_RB "@RB@" +#define _PATH_SB "@SB@" +#define _PATH_RZ "@RZ@" +#define _PATH_SZ "@SZ@" + + + +/* + * GoldED + */ +#define _PATH_GOLDED "@GOLDEDBIN@" +#define _PATH_GOLDNODE "@GOLDNODE@" +