diff --git a/docs/sbbsunix.txt b/docs/sbbsunix.txt index 47d62ae89c8b433ca8741577925a52c1883f3898..4967af457a24d1bdd746f322681f921d532ed3f6 100644 --- a/docs/sbbsunix.txt +++ b/docs/sbbsunix.txt @@ -6,399 +6,12 @@ http://www.synchro.net $Id$ -The information in this file is current as of the date above. The answers and -instructions in this file may change over time, so be sure to get the current -version of this file at ftp://ftp.synchro.net/sbbsunix.txt -or ViewCVS at -http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/docs/sbbsunix.txt - - -Answers to Frequently Asked Questions -===================================== - -Q. What flavors of Unix (and Unix-like operating systems) are supported? -A. Currently, Linux, FreeBSD, OpenBSD, and NetBSD are actively supported. - Additionally, QNX and Solaris-x86 have been known to work in the past, - but are not actively maintained. - -Q. What distributions of Linux are supported? -A. Should work with any GNU/Linux-x86 distribution (e.g. RedHat, Mandrake, - Debian, Slackware, etc.). - -Q. 64-bit? -A. Untested experimental support for 64-bit platforms is in CVS. Use the - directions available at - http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/docs/64bit.txt - in conjunction with this document for building and be prepared to deal with - bugs. - -Q. The installer (e.g. Linux-install from sbbsunix.tgz) segfaults, crashes, - or fails to get the file size of sbbs_src.tgz. -A. This installer has known issues and is currently *unsupported*. Do not use - it. This installer (known to us as "sbbsinst") will be revamped and - re-released in the near future. - - In the mean-time, follow the steps given in this document to download, - build, install, and run Synchronet for Unix. - -Q. Linking error: undefined reference: '__ctype_b' -A: This is an issue linking the JavaScript library for Linux (libjs.a) on - RedHat Linux 9 and Mandrake Linux 9 using glibc v2.3.2-11+. - - This issue has been resolved with the addition of libjs.so and libnspr4.so - to the CVS repository (in the lib/mozilla directory). If you're having this - problem, run "cvs update -d" in your lib and src/sbbs3 directories and - rebuild. - - Another solution is to use the lib[moz]js.so file included with your Linux - distribution (if it is). See installation steps 1.E and 1.F for more - details. - -Q. Are non-x86 (Alpha, SPARC, 68k, PowerPC, etc) processors supported? -A. Not currently. Synchronet assumes a little-endian processor. It *may* work - on other little-endian processors (e.g. Alpha), but hasn't been tested. - Big-endian support is currently being developed for the v3.20 time-frame. - -Q. Will Synchronet ever support big-endian and/or 64-bit processors? -A. Yes, that is the plan. - -Q. Will Synchronet be ported to Mac OS X? -A. Definitely. See the 2 questions above. - -Q. Where do I get Synchronet for Unix? -A. There are no binary distributions at this time, so you must get the source - code from the Synchronet CVS repository (see the step-by-step instructions - below for details) or by downloading the latest verified buildable source - code tarball (tgz file) from ftp://vert.synchro.net/Synchronet. - -Q. Will there be binary releases? -A. Maybe. Linux is a particularly difficult "platform" to deliver consistently - compatible binaries for and unfortunately, it is the most popular Unix-like - operating system we currently support. - -Q. Can I mix Synchronet for Unix and Synchronet for Win32 or DOS or OS/2 nodes - on the same BBS? -A. Yes. As long as all the nodes can access the same live data files (via LAN) - you can have as many instances of Synchronet on as many different platforms - as you wish. - -Q. Does Synchronet for Unix support external DOS programs/doors? -A. Currently, only the FreeBSD build has doscmd support "built-in" (and this - "support" requires emulators/doscmd to be installed): - - For FreeBSD, the path that is entered in the Start-up Directory is mapped - as C:\ the current node directory is mapped as D:\ and the Synchronet - root directory is mapped as E:\. When a DOS door is executed, a .doscmdrc - is created in the node directory. Copying this file and using it to run - doscmd in X11 mode while running the setup programs is the simplest way - to configure the doors. - - Other platforms can use DOSEMU or whatever is available for running DOS - programs. - - There's a patch for "building-in" DOSEMU support with Synchronet for Linux: - http://www.icequake.net/bbs/syncmods/index.html and - (mirror) http://www.synchro.net/docs/linux-dosemu.html - - and a FAQ for using DOSEMU with Synchronet for Linux (without a patch): - http://www.exeonline.com/bbs/howto-doors.txt - -Q. What external programs/doors does Synchronet for Unix support? -A. External programs can either use standard I/O (e.g. bash, pico, Lord/X, - PimpWars) or socket I/O (e.g. Synchronet XSDK doors). - -Q. Does Synchronet for Unix require X-Windows? -A. No, Synchronet for Unix is currently a console-based application. - However, it does have an X-based character mode console now. The X11 - headers (Part of the X11-devel package or something similar) are required - for this to work. - -Q. Are there any plans to make an X-Windows front-end for Synchronet? -A. Possibly, but it would be optional. - -Q. What are the recent developments in Synchronet? -A. There are changes (fixes, improvements, etc.) being made all the time. - See http://cvs.synchro.net/commitlog.ssjs for a log of the most recently - committed changes to the Synchronet CVS repository. - - New releases are always posted on the web-site (http://www.synchro.net), - as well as announced in the Synchronet discussion groups - (http://www.synchro.net/docs/support.html) and the Synchronet Announcements - mailing list (subscribe at listserver@synchro.net). - -Q. Can I use a different compiler to build Synchronet for *nix? -A. Yes, currently Synchronet has successfully been built with both GCC and ICC - (The Intel C Compiler). To specify an alternate compiler, add - ``DONT_CLOBBER_CC=1 CC=icc CXX=icpc'' to the gmake command lines where - icc is the C compiler name and icpc is the C++ compiler name. If you get - errors during the build (not warnings) please submit a bug report. If you - are using a commercial compiler other than ICC, we will probobly be unable - to help you without a copy of the compiler. - -Q. I'm using SELinux and nothing works. -A. Yes, you'll need to use chcon on each of the shared objects (.so files) - chcon -t texrel_shlib_t /path/to/libwhatever.so - Do this for each .so file that Synchronet creates. - -Q. How much disk space do I need? -A. A fresh install (as of Feb-2009) requires about 70MBytes. - Much of the space consumed is in the form of intermediate build files which - may be removed after the build is complete if space is a concern. - - -Quick Install/Configure/Run Instructions -======================================== - -Note: Type each of the following commands at a Unix shell prompt. - Do not actually type the '#' character. - -# mkdir /sbbs -# cd /sbbs -# wget http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/install/GNUmakefile -# gmake install SYMLINK=1 -# export SBBSCTRL=/sbbs/ctrl -# /sbbs/exec/scfg -# /sbbs/exec/sbbs - -If you have any problem with these commands, see the detailed step-by-step -instructions below. - - -Non-CVS Install/Configure/Run Instructions for Linux-x86 only -============================================================= -# mkdir /sbbs -# cd /sbbs -# wget ftp://vert.synchro.net/Synchronet/sbbs_src.tgz -# wget ftp://vert.synchro.net/Synchronet/sbbs_run.tgz -# tar -xzf sbbs_src.tgz -# tar -xzf sbbs_run.tgz -# ln -s /sbbs/lib/cryptlib/linux.release/*.so /usr/lib -# cd /sbbs/src/sbbs3; gmake RELEASE=1 -# cd /sbbs/src/sbbs3/scfg; gmake RELEASE=1 -# cd /sbbs/xtrn/sbj; gmake -# cd /sbbs/xtrn/sbl; gmake -# cd /sbbs/exec -# ln -s ../src/sbbs3/gcc.linux.exe.release/* . -# ln -s ../src/sbbs3/scfg/gcc.linux.exe.release/scfg* . -# gmake -# ./scfg -# ./sbbs - -If you have any problem with these commands, see the detailed step-by-step -instructions below. - - -Step-by-step Instructions -========================= - -Note: These instructions assume you are already logged in as 'root'. - -Note: Example command-lines are pre-fixed with '#', symbolizing the Unix shell - prompt. You do not actually type the '#' character. - -Note: The "make" command may be used in place of "gmake" on systems where - the GNU Make utility is named "make" (e.g. Debian Linux). - Type "make -v" to verify that "make" is indeed GNU Make. - -Note: Any references to cvs.synchro.net can be replaced with - cvs-mirror.synchro.net (the Synchronet CVS Mirror site run by Stephen - Hurd) if you're having any problems with cvs.synchro.net. - -Note: Skip to step 8 if you are updating an existing Synchronet installation. - -1. Get the required installation and source code modules from CVS: - - A. Create the Synchronet BBS directory on your file system: - # mkdir /sbbs - - B. Change to the Synchronet BBS directory: - # cd /sbbs - - *> Optional Shortcut: - *> At this point you can copy the file from this url: - *> http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/install/GNUmakefile - *> into the Synchronet directory, run "gmake install SYMLINK=1" - *> and then skip ahead to step 5. - - C. Get the required installation modules from the CVS repository: - # export CVSROOT=:pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs - # cvs co run-sbbs3 - - *> Recommended Shortcut for Linux systems: - *> Download the last verified buildable source archive (for Linux) - *> from ftp://vert.synchro.net/Synchronet/sbbs_src.tgz - *> extract (with "tar -xzvf <filename>") in the Synchronet BBS Directory, - *> and skip ahead to G. - - D. Get the required source code modules from the CVS repository: - # cvs co src-sbbs3 - - *> Reccomended Shortcut (existing JavaScript library): - *> If your Unix distribution includes the file /usr/lib/libjs.so or - *> /usr/lib/libmozjs.so, you can save a lot of time by using this - *> library instead of the one supplied in the Synchronet CVS repository. - *> If you have /usr/lib/libmozjs.so (instead of libjs.so), you can either: - *> Create a symlink or copy of this file with the name /usr/lib/libjs.so - *> or specify "JSLIB=mozjs" on the "gmake" command-line mentioned later. - *> If libmozjs.so is not located in a standard library path such as - *> /usr/lib or /usr/local/lib, you will also need to specify JSLIBDIR - *> also on the gmake command-line such as "JSLIBDIR=/usr/lib/mozilla". - *> If your system already has the JavaScript library, skip ahead to step 2. - - E. Get the required JavaScript library for your platform and build type: - # cvs co lib/mozilla/js/linux.release - or: - # cvs co lib/mozilla/js/freebsd.release - etc. - Note: If you want to get the full source code to the Mozilla JavaScript - library to build it yourself, the cvs repository is: - :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot - the module name is mozilla/js/src. - - F. Get the required NSPR library for your platform and build type: - # cvs co lib/mozilla/nspr/linux.release - or: - # cvs co lib/mozilla/nspr/freebsd.release - etc. - Note: This step is not necessary if your system already has the file - /usr/lib/libnspr4.so - - G. Create symbolic links to the Mozilla Libraries (JavaScript and NSPR) in - your /usr/lib directory: - # ln -s /sbbs/lib/mozilla/*/linux.release/*.so /usr/lib - - or: Add these two directories to your LD_LIBRARY_PATH environment - variable. - - H. Get the required Cryptlib library for your platform and build type: - # cvs co lib/cryptlib/linux.release - or: - # cvs co lib/cryptlib/freebsd.release - etc. - Note: This step is not necessary if your system already has the file - /usr/lib/libcl.so - - I. Create symbolic links to the Cryptlib Library in your /usr/lib - directory: - # ln -s /sbbs/lib/cryptlib/linux.release/*.so /usr/lib - - or: Add these two directories to your LD_LIBRARY_PATH environment - variable. - - -2. Build Synchronet: - - Prerequisite: curses - You must have either the curses or ncurses headers and library files - installed on your system, or you must remove the USE_CURSES definition - from the various GNUmakefiles in the src/sbbs3 tree. If you have the - files /usr/include/curses.h and /usr/lib/libcurses.a then you're ready - to continue. - - A. Change to the Synchronet src/sbbs3 directory: - # cd /sbbs/src/sbbs3 - - B. Build the main executable (and utilities): - # gmake RELEASE=1 - NOTES: - 1: If you're linking with /usr/lib/libmozjs.so, don't forget to add - "JSLIB=mozjs" to the gmake command-line - 2: If X is not installed in /usr/X11R6, - use "gmake X_PATH=/path/to/X" - 3: To debug compile/link command-line problems, adding "VERBOSE=1" - to the gmake command-line can be very helpful - 4: Warnings (if any) can be safely ignored - 5: The "current" code in the CVS repository is in a fairly constant - state of change. And often, one or more projects will not build - successfully on any given platform. This is a common occurance - and is expected in a fluid development project such as this one. - If you'd like a verifiably-buildable source code base, either - download one of the source code archives (e.g. sbbs_src.tgz) or - use a release label (tag) when checking out files from CVS. - 6: By default, this will build RELEASE binaries which will be smaller, - faster, and consume less resources than a DEBUG build. If you - wish a DEBUG build, remove "RELEASE=1" from the gmake command-line. - This will allow you to send us more useful error reports. - - C. Change to the src/sbbs3/scfg directory: - # cd /sbbs/src/sbbs3/scfg - - D. Build the Synchronet configuration utility (SCFG): - # gmake - Note: If X is not installed in /usr/X11R6, - use "gmake X_PATH=/path/to/X" - Note: Warnings (if any) can be safely ignored - - E. Congratulate yourself on a job well-done. - - -3. Prepare the "exec" directory: - - A. Change to the Synchronet exec directory: - # cd /sbbs/exec - - B. Copy (or create symbolic links to) the following files: - ../src/sbbs3/gcc.linux.exe.release/* - ../src/sbbs3/scfg/gcc.linux.exe.release/scfg* - (the paths will be different for other platforms or release builds) - - Example: - # ln -s ../src/sbbs3/gcc.linux.exe.release/* /sbbs/exec - # ln -s ../src/sbbs3/scfg/gcc.linux.exe.release/scfg* /sbbs/exec - - C. Copy (or create symbolic links to) the following shared libraries: - ../src/sbbs3/gcc.linux.lib.release/* - (the path will be different for other platforms or release builds) - - Example: - # ln -s ../src/sbbs3/gcc.linux.lib.release/* /sbbs/exec - - Note: Another option is to create the symbolic links in your /usr/lib - directory (note the trailing dot): - # ln -s /sbbs/src/sbbs3/gcc.linux.lib.release/*.so /usr/lib - - OR: set the LD_LIBRARY_PATH environment variable to point to your - gcc.<os>.lib.<build> directory: - # export LD_LIBRARY_PATH=/sbbs/src/sbbs3/gcc.linux.lib.release - - D. Build the required Baja {tm} modules (exec/*.bin): - # gmake - - -4. Prepare the "xtrn" directory: - - A. Change to the xtrn/sbj directory: - # cd /sbbs/xtrn/sbj - - B. Build Synchronet Blackjack: - # gmake - - C. Change to the xtrn/sbl directory: - # cd /sbbs/xtrn/sbl - - D. Build Synchronet BBS List: - # gmake - - -5. Configure the BBS: - - A. Run the Synchronet Configuration Utility (SCFG) - # /sbbs/exec/scfg /sbbs/ctrl - (if you have problems with the curses interface, try running - "scfg -id" instead) - Tip: Set the SBBSCTRL environment variable and you won't have to specify - the path to the "ctrl" directory on the command-line: - # export SBBSCTRL=/sbbs/ctrl - - B. Change SCFG->Networks->QWK->Hubs->VERT: - Pack Command Line %@zip -jD %f %s - Unpack Command Line %@unzip -Coj %f %s -d %g - Call-out Command Line *qnet-ftp VERT dove.synchro.net YOURPASS - (see docs/dove-net.txt for more details) - - C. You should also consider configuring important details about your BBS - (like the name) in SCFG->System. +THIS DOCUMENT IS OBSOLETE +Current instructions are available at: +http://wiki.synchro.net/install:nix +1. Installing Synchronet: + A. Follow the directions at http://wiki.synchro.net/install:nix 6. Running Synchronet: