Synchronet for Unix
-=-=-=-=-=-=-=-=-=-

By: Rob Swindell (digital man) and Stephen Hurd (deuce)
http://www.synchro.net

$Id: sbbsunix.txt,v 1.71 2012/10/16 19:17:49 deuce Exp $

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:

   A. Set the SBBSCTRL environment variable to point to your "ctrl" directory:
      # export SBBSCTRL=/sbbs/ctrl

   B. Run the main executable (with default settings/options):
      # /sbbs/exec/sbbs

   C. To view available command-line options, run:
      # /sbbs/exec/sbbs help | more

   D. To view default settings (node and port numbers), run:
      # /sbbs/exec/sbbs defaults

   E. To change the default settings, edit the file /sbbs/ctrl/sbbs.ini

   F. For more details, see /sbbs/docs/sbbscon.txt


7. Debugging:

   You can either run Synchronet (sbbs) from the GNU debugger (gdb), or you
   can debug an sbbs crash "post mortem" provided you have a system-generated
   core file as a result of a crash. Often times, a core file is the best way
   to find the root cause of a crash, so if you can configure your system to
   create core files when sbbs crashes, that can be very helpful to the
   developers in finding and fixing any bugs and ultimately, improving the
   quality of the software.

   You can run "ulimit -c" to check if core file generation is enabled for the
   current user profile (0 = disabled, non-zero or "unlimited" = enabled). An 
   "unlimited" core file size is the preferred setting. If your system is
   configured for no core file generation, check for a call to "ulimit -c 0"
   in your /etc/profile (or similar startup file) and remove/edit the command.

   Linux Sysops: to help locate sbbs crash core files, the following
   lines in your /etc/sysctl.conf file can be helpful:

     # Controls whether core dumps will append the PID to the core filename.
     # Useful for debugging multi-threaded applications.
     kernel.core_uses_pid = 1
     kernel.core_pattern = /tmp/core.%e.%p

   This will place core files with the name "core.sbbs.####" in the /tmp dir
   instead of core.#### in the current directory (typically /sbbs/ctrl).

   A. Run the GNU debugger:
      # gdb /sbbs/exec/sbbs
      or:
      # gdb /sbbs/exec/sbbs /tmp/core.sbbs.####

   B. Run Synchronet (if no core file used):
      (gdb) run -nd

   C. After segfault or other crash (or when using a core), display back-trace:
      (gdb) bt

   D. If (and only if) the last line of the output looks like this:
      '#2  0x00000000 in ?? ()' (The number at the start will vary)
      display backtraces of all threads:
      (gdb) thread apply all bt

   E. Copy and paste in e-mail to rob[at]synchro[dot]net or post in one of the
      Synchronet discussion groups (http://www.synchro.net/docs/support.html).


Default Configuration (SCFG) Screen-shots
=========================================

[Viewable File Type]
1: File Extension        zip
2: Command Line          %@unzip -vq %s
3: Access Requirements   

[Viewable File Type]
1: File Extension        tgz
2: Command Line          tar -tzf %s
3: Access Requirements   UNIX

[Viewable File Type]
1: File Extension        tar
2: Command Line          tar -tf %s
3: Access Requirements   UNIX

[Testable File Type]
1: File Extension        zip
2: Command Line          %@unzip -tqq %f
3: Working String        Testing ZIP Integrity...
4: Access Requirements   

[Testable File Type]
1: File Extension        zip
2: Command Line          %@zip -z %f < %zzipmsg.txt
3: Working String        Adding ZIP Comment...
4: Access Requirements   

[Testable File Type]
1: File Extension        tgz
2: Command Line          tar -tzf %s
3: Working String        Testing TGZ Integrity...
4: Access Requirements   UNIX

[Testable File Type]
1: File Extension        tar
2: Command Line          tar -tf %s
3: Working String        Testing TAR Integrity...
4: Access Requirements   UNIX

[Extractable File Type]
1: File Extension        zip
2: Command Line          %@unzip -Cojqq %f %s -d %g
3: Access Requirements   

[Extractable File Type]
1: File Extension        tgz
2: Command Line          tar -xzf %f %s -C %g
3: Access Requirements   UNIX

[Extractable File Type]
1: File Extension        tar
2: Command Line          tar -xf %f %s -C %g
3: Access Requirements   UNIX

[Compressable File Type]
1: File Extension        zip
2: Command Line          %@zip -jD %f %s
3: Access Requirements   

[Compressable File Type]
1: File Extension        tgz
2: Command Line          tar -czf %f %s
3: Access Requirements   UNIX

[Compressable File Type]
1: File Extension        tar
2: Command Line          tar -cf %f %s
3: Access Requirements   UNIX

[File Transfer Protocol]
 1: Mnemonic (Command Key)        X
 2: Protocol Name                 Xmodem (SZ)
 3: Access Requirements           UNIX
 4: Upload Command Line           rz --xmodem
 5: Download Command Line         sz --xmodem %f
 6: Batch Upload Command Line
 7: Batch Download Command Line
 8: Bi-dir Command Line
 9: Native (32-bit) Executable    Yes
10: Supports DSZLOG               No

[File Transfer Protocol]
 1: Mnemonic (Command Key)        Y
 2: Protocol Name                 Ymodem (SZ)
 3: Access Requirements           UNIX
 4: Upload Command Line           rz --ymodem
 5: Download Command Line         sz --ymodem %f
 6: Batch Upload Command Line     rz --ymodem
 7: Batch Download Command Line   sz --ymodem %s
 8: Bi-dir Command Line
 9: Native (32-bit) Executable    Yes
10: Supports DSZLOG               No

[File Transfer Protocol]
 1: Mnemonic (Command Key)        Z
 2: Protocol Name                 Zmodem (SZ)
 3: Access Requirements           UNIX
 4: Upload Command Line           rz -p -R
 5: Download Command Line         sz %f
 6: Batch Upload Command Line     rz -p -R
 7: Batch Download Command Line   sz %s
 8: Bi-dir Command Line
 9: Native (32-bit) Executable    Yes
10: Supports DSZLOG               No

[File Transfer Protocol]
 1: Mnemonic (Command Key)        K
 2: Protocol Name                 Kermit (G-Kermit)
 3: Access Requirements           UNIX
 4: Upload Command Line           gkermit -q -P -r -a %f
 5: Download Command Line         gkermit -q -P -s %f
 6: Batch Upload Command Line
 7: Batch Download Command Line   gkermit -q -P -s %s
 8: Bi-dir Command Line
 9: Native (32-bit) Executable    Yes
10: Supports DSZLOG               No

[Native (32-bit) Program List]
 1: cmd.exe
 2: sh
 3: csh
 4: bash
 5: node
 6: zip
 7: unzip

[Pico (Pine Composer) Editor]
 1: Name                            Pico (Pine Composer)
 2: Internal Code                   PICO
 3: Remote Command Line             pico -t -o %g %f
 4: Access Requirements             UNIX
 5: Intercept Standard I/O          Yes
 6: Native (32-bit) Executable      Yes
 7: Use Shell to Execute            No
 8: Quoted Text                     Prompt User
 9: QuickBBS Style (MSGTMP)         No
10: Expand Line Feeds to CRLF       Yes
11: Strip FidoNet Kludge Lines      No
12: BBS Drop File Type              None

[Synchronet BBS List]
 1: Name                       Synchronet BBS List
 2: Internal Code              SBL
 3: Start-up Directory         ../xtrn/sbl
 4: Command Line               sbl%.
 5: Clean-up Command Line
 6: Execution Cost             None
 7: Access Requirements
 8: Execution Requirements
 9: Multiple Concurrent Users  Yes
10: Intercept Standard I/O     No
11: Native (32-bit) Executable Yes
12: Use Shell to Execute       No
13: Modify User Data           No
14: Execute on Event           No
15: BBS Drop File Type         Synchronet      XTRN.DAT
16: Place Drop File In         Node Directory

[Synchronet Blackjack!]
 1: Name                       Synchronet Blackjack!
 2: Internal Code              SBJ
 3: Start-up Directory         ../xtrn/sbj
 4: Command Line               sbj%. /l
 5: Clean-up Command Line      sbjclean%.
 6: Execution Cost             None
 7: Access Requirements
 8: Execution Requirements
 9: Multiple Concurrent Users  Yes
10: Intercept Standard I/O     No
11: Native (32-bit) Executable Yes
12: Use Shell to Execute       No
13: Modify User Data           Yes
14: Execute on Event           No
15: BBS Drop File Type         Synchronet      XTRN.DAT
16: Place Drop File In         Node Directory

[Synchronet Configuration]
 1: Name                       Synchronet Configuration
 2: Internal Code              SCFG
 3: Start-up Directory
 4: Command Line               %!scfg -d -l%r
 5: Clean-up Command Line
 6: Execution Cost             None
 7: Access Requirements        SYSOP
 8: Execution Requirements
 9: Multiple Concurrent Users  No
10: Intercept Standard I/O     Yes
11: Native (32-bit) Executable Yes
12: Use Shell to Execute       No
13: Modify User Data           No
14: Execute on Event           No
15: BBS Drop File Type         None
16: Place Drop File In         Node Directory


SBBSecho zip/unzip configuration (ctrl/sbbsecho.cfg)
================================
PACKER ZIP 0 504B
    PACK %@zip -jD %f %s
    UNPACK %@unzip -ojC %f -d %s
END

Send comments/questions to rob[at]synchro[dot]net

/* End of sbbsunix.txt */
