sbbsunix.txt 14.8 KB
Newer Older
1
2
3
Synchronet for Unix
-=-=-=-=-=-=-=-=-=-

4
By: Rob Swindell (digital man)
5
6
http://www.synchro.net

7
$Id$
8

9
10
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
11
version of this file at ftp://ftp.synchro.net/sbbsunix.txt
12
or ViewCVS at
13
http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/docs/sbbsunix.txt
14

15
16
17
18
19

Answers to Frequently Asked Questions
=====================================

Q. What flavors of Unix (and Unix-like operating systems) are supported?
20
A. Currently, Linux, FreeBSD, OpenBSD, NetBSD, QNX and Solaris-x86.
21
22

Q. What distributions of Linux are supported?
rswindell's avatar
rswindell committed
23
24
A. Should work with any GNU/Linux-x86 distribution (e.g. RedHat, Mandrake, 
   Debian, Slackware, etc.).
25

26
Q. Linking error: undefined reference: '__ctype_b'
27
28
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+.
29
 
30
31
32
33
   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" in your lib and src/sbbs3 directories and
   rebuild.
34

35
36
37
38
   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.

39
Q. Are non-x86 (Alpha, SPARC, 68k, PowerPC, etc) processors supported?
40
41
42
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.
43
44

Q. Will Synchronet ever support big-endian and/or 64-bit processors?
rswindell's avatar
rswindell committed
45
A. Yes, that is the plan.
46
47
48
49
50
51
52

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 (cvs.synchro.net).
   See the step-by-step instructions below for details.

Q. Will there be binary releases?
53
54
A. Yes, some day soon. Or maybe a binary installer that will come with source
   code and build it for you.
55
56
57
58
59
60
61

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.

62
Q. Does Synchronet for Unix support external DOS programs/doors?
63
64
A. Currently, only the FreeBSD build has doscmd support "built-in" (and this
   "support" requires Deuce's version of doscmd with FOSSIL emulation). Other
rswindell's avatar
rswindell committed
65
   platforms can use DOSEMU or whatever is available for running DOS programs.
66
67
68
69
   There's a patch for "building-in" DOSEMU support with Synchronet for Linux:
   http://forge.icequake.net/syncmods/index.html
   and a FAQ for using DOSEMU with Synchronet for Linux (without a patch):
   http://www.exeonline.com/bbs/howto-doors.txt
70
71

Q. What external programs/doors does Synchronet for Unix support?
72
73
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).
74

75
76
77
Q. Does Synchronet for Unix require X-Windows?
A. No, Synchronet for Unix is currently a console-based application.

rswindell's avatar
rswindell committed
78
Q. Are there any plans to make an X-Windows front-end for Synchronet?
79
80
81
82
83
84
A. Yes, but it will be optional.


Step-by-step Instructions
=========================

85
86
Note: These instructions assume you are already logged in as 'root'.

87
88
89
Note: Skip to step 8 if you are updating an existing Synchronet installation.

1. Get the required installation and source code modules from CVS:
90
91
92
93
94
95
96

   A. Create the Synchronet BBS directory on your file system:
      mkdir /sbbs

   B. Change to this directory:
      cd /sbbs

97
98
99
100
101
   *> Optional Shortcut:
   *> At this point you can copy the file from this url: 
   *> http://cvs.synchro.net/cgi-bin/cvsweb.cgi/~checkout~/install/GNUmakefile
   *> into the /sbbs directory, run "gmake install", and then skip ahead to 
   *> step 5.
rswindell's avatar
rswindell committed
102

103
104
105
   C. Get the required installation modules from the CVS repository:
      export CVSROOT=:pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs 
      cvs login
106
      (no password - just hit enter)
107
      cvs co ctrl text docs exec xtrn node1 node2 node3 node4
108
109

   D. Get the required source code modules from the CVS repository:
110
111
112
113
114
115
116
117
118
119
      cvs co src/build src/sbbs3 src/uifc src/xpdev include

   *> Optional 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 your system already has the JavaScript library, skip ahead to step 2.
120

121
   E. Get the required JavaScript library for your platform and build type:
122
      cvs co lib/mozilla/js/linux.debug
123
      or:
124
      cvs co lib/mozilla/js/linux.release
125
      or:
126
      cvs co lib/mozilla/js/freebsd.debug
127
      etc.
128
      Note: If you want to get the full source code to the Mozilla JavaScript
129
            library to build it yourself, the cvs repository is:
130
131
            :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
            the module name is mozilla/js/src.
132

133
134
135
136
137
138
139
   F. Get the required NSPR library for your platform and build type:
      cvs co lib/mozilla/nspr/linux.debug
      or:
      cvs co lib/mozilla/nspr/linux.release
      or:
      cvs co lib/mozilla/nspr/freebsd.debug
      etc.
140
141
	  Note: This step is not necessary if your system already has the file
	        /usr/lib/libnspr4.so
142

143

144
145
2. Build Synchronet:

146
147
148
149
150
151
152
   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.

153
   A. Change to this directory:
154
155
      cd /sbbs/src/sbbs3

156
   B. Build the main executable (and utilities):
157
      gmake
rswindell's avatar
rswindell committed
158
      (please report build errors to rob@synchro.net)
159
      Note: Warnings (if any) can be safely ignored
160
161
162
163
      Note: If you're linking with /usr/lib/libmozjs.so, don't forget to add
            "JSLIB=mozjs" to the gmake command-line
      Note: To debug compile/link command-line problems, adding "VERBOSE=1"
            to the gmake command-line can be very helpful
164

165
   C. Change to this directory:
166
167
      cd /sbbs/src/sbbs3/scfg

168
   D. Build the Synchronet configuration utility (SCFG):
169
      gmake
rswindell's avatar
rswindell committed
170
      (please report build errors to rob@synchro.net)
171
      Note: Warnings (if any) can be safely ignored
172

173
   E. Congratulate yourself on a job well-done.
174
175


176
3. Prepare the "exec" directory:
177
178
179
180
181
182
183
184
185

   A. Change to this directory:
      cd /sbbs/exec

   B. Copy (or create symbolic links to) the following files:
      /sbbs/src/sbbs3/gcc.linux.exe.debug/baja
      /sbbs/src/sbbs3/gcc.linux.exe.debug/node
      /sbbs/src/sbbs3/gcc.linux.exe.debug/chksmb
      /sbbs/src/sbbs3/gcc.linux.exe.debug/fixsmb
186
      /sbbs/src/sbbs3/gcc.linux.exe.debug/jsexec
187
      /sbbs/src/sbbs3/gcc.linux.exe.debug/makeuser
rswindell's avatar
rswindell committed
188
189
      /sbbs/src/sbbs3/gcc.linux.exe.debug/addfiles
      /sbbs/src/sbbs3/gcc.linux.exe.debug/filelist
190
191
      /sbbs/src/sbbs3/gcc.linux.exe.debug/smbutil
      /sbbs/src/sbbs3/gcc.linux.exe.debug/sbbs
rswindell's avatar
rswindell committed
192
      /sbbs/src/sbbs3/gcc.linux.exe.debug/sbbsecho
193
      /sbbs/src/sbbs3/gcc.linux.exe.debug/echocfg
194
195
196
      /sbbs/src/sbbs3/scfg/gcc.linux.debug/scfg
      /sbbs/src/sbbs3/scfg/gcc.linux.debug/scfghelp.ixb
      /sbbs/src/sbbs3/scfg/gcc.linux.debug/scfghelp.dat
197
      (the paths will be different for other platforms or release builds)
198

199
200
201
202
203
204
205
206
207
208
209
210
211
212
   C. Copy (or create symbolic links to) the following shared libraries:
      /sbbs/src/sbbs3/gcc.linux.lib.debug/libsbbs.so
      /sbbs/src/sbbs3/gcc.linux.lib.debug/libftpsrvr.so
      /sbbs/src/sbbs3/gcc.linux.lib.debug/libmailsrvr.so
      /sbbs/src/sbbs3/gcc.linux.lib.debug/libservices.so
      /sbbs/src/sbbs3/gcc.linux.lib.debug/libwebsrvr.so
      (the paths will be different for other platforms or release builds)

      Note: Another option is to create the symbolic links in your /usr/lib
            directory 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.debug

   D. Build the required Baja {tm} modules:
213
      gmake
214
215


216
4. Prepare the "xtrn" directory:
217
218
219
220
221

   A. Change to this directory:
      cd /sbbs/xtrn/sbj

   B. Build Synchronet Blackjack:
rswindell's avatar
rswindell committed
222
      gmake
223

rswindell's avatar
rswindell committed
224
   C. Change to this directory:
225
226
      cd /sbbs/xtrn/sbl

227
   D. Build Synchronet BBS List:
rswindell's avatar
rswindell committed
228
      gmake
229
230


231
5. Configure the BBS:
232
233
234

   A. Run SCFG:
      /sbbs/exec/scfg /sbbs/ctrl
rswindell's avatar
rswindell committed
235
      (if you have problems with the curses interface, try running
236
237
238
       "scfg -d" instead)
      Tip: Set the SBBSCTRL environment variable and you won't have to specify
           the path to the "ctrl" directory on the command-line:
239
           export SBBSCTRL=/sbbs/ctrl
240

241
   B. Change SCFG->Networks->QWK->Hubs->VERT:
242
243
244
      Pack Command Line               zip -j -D %f %s
      Unpack Command Line             unzip -o -j %f %s -d %g
      Call-out Command Line           *qnet-ftp VERT vert.synchro.net YOURPASS
245
      (see docs/dove-net.txt for more details)
246

247
248
249
   C. You should also consider configuring important details about your BBS
      (like the name) in SCFG->System.

250

251
6. Running Synchronet:
252
253
254
255
256
257
258
259
260
261
262
263
264

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

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

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

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

265
   5. To change the default settings, edit the file:
rswindell's avatar
rswindell committed
266
      /sbbs/ctrl/sbbs.ini
267

268
269
   6. For more details, see /sbbs/docs/sbbscon.txt

270

271
7. Debugging:
272
273
274
275

   A. Run the GNU debugger:
      gdb /sbbs/exec/sbbs

276
   B. Run Synchronet:
277
278
      run

rswindell's avatar
rswindell committed
279
   C. After segfault, display back-trace:
280
281
      bt

282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
   D. Copy and paste in e-mail to rob@synchro.net


8. Updating/synchronizing the source code with the CVS repository:

   A. Change to your Synchronet installation directory:
      cd /sbbs

   B. Back-up your working exec directory:
      cp -a exec exec.bak

   C. Get the latest changes from CVS:
      export CVSROOT=:pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs 
      cvs login
      (no password - just hit enter)
297
      cvs update docs exec xtrn src lib include
298
299
300
301
302
303

   D. Repeat steps 2, 3 and 4 (only).

   E. Shutdown and re-run sbbs.

   F. You're done. :-)
304
305


306
307
308
309
310
Default Configuration (SCFG) Screen-shots
=========================================

[Viewable File Type]
1: File Extension        zip
311
2: Command Line          unzip -C -l %s
312
313
314
315
316
317
318
319
320
321
3: Access Requirements   UNIX

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

[Extractable File Type]
1: File Extension        zip
322
2: Command Line          unzip -C -o -j %f %s -d %g
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
3: Access Requirements   UNIX

[Compressable File Type]
1: File Extension        zip
2: Command Line          zip -j -D %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 UL Command Line
7: Batch DL Command Line
8: Bidir Command Line
9: Uses 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 UL Command Line    rz --ymodem
7: Batch DL Command Line    sz --ymodem %s
8: Bidir Command Line
9: Uses 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 UL Command Line    rz -p -R
7: Batch DL Command Line    sz %s
8: Bidir Command Line
9: Uses DSZLOG              No

[Native (32-bit) Program List]
 1: cmd.exe
 2: sh
 3: csh
 4: bash
 5: node
 6: sz
 7: rz
 8: zip
 9: unzip
10: pkzip25
374
11: jsexec
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444

[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


445
446
447
Send comments/questions to rob@synchro.net

/* End of sbbsunix.txt */