Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
faq:nix [2010/02/23 01:45] digitalmanfaq:nix [2020/11/23 20:21] – [Recycle] typo digital man
Line 1: Line 1:
-====== UNIX and UNIX-like Operating Systems  ======+====== UNIX ======
  
-~~QNA~~+Frequently asked questions regarding Synchronet on UNIX and Unix-like operating systems (e.g. Linux).
  
-----+  * [[#flavors|What flavors of Unix (and Unix-like operating systems) are supported]]? 
 +  * [[#linux_distros|What distributions of Linux are supported]]? 
 +  * [[#64-bit|Are 64-bit operating systems supported]]? 
 +  * [[#installer|Is there any installer]]? 
 +  * [[#non-x86|Are non-x86 processors supported]]? 
 +  * [[#download|Where do I get Synchronet for Unix]]? 
 +  * [[#binaries|Will there be binary releases]]? 
 +  * [[#Mix with Windows]]? 
 +  * [[#DOS|Does Synchronet for Unix support external DOS programs/doors]]? 
 +  * [[#Doors|What doors can be used with Synchronet for Unix]]? 
 +  * [[#X Windows|Does Synchronet for Unix require X Windows]]? 
 +  * [[#GUI|Is there a graphic user interface for Unix sysops]]? 
 +  * [[#Compiler|Can I use a compiler other than GCC]]? 
 +  * [[#SELinux|What does nothing work with SELinux]]? 
 +  * [[#Disk space|How much disk space is required]]?  
 +  * [[#Terminal Type|What does an ''unknown terminal'' error indicate]]? 
 +  * [[#tempnam warning|Why do I get a warning about use of ''tempnam'' when compiling]]? 
 +  * [[#SDL Errors|How do I work around SDL 1.2 run-time errors]]? 
 +  * [[#Recycle|Why does the recycling of servers/services not work]]? 
 +   
 +===== Flavors =====
  
-??? What flavors of Unix (and Unix-like operating systems) are supported? +**Question:**\\ 
-!!! Currently, Linux, FreeBSD, OpenBSD, and NetBSD are actively supported. +What flavors of Unix (and Unix-like operating systems) are supported?
-Additionally, QNX and Solaris-x86 have been known to work in the past, +
-but are not actively maintained.+
  
-??? What distributions of Linux are supported? +**Answer:**\\ 
-!!! Should work with any GNU/Linux-x86 distribution (e.gRedHatMandrake,  +Currently there are four levels of support for Unix-like OSs. 
-DebianSlackwareetc.).+  - Operating systems and platforms which are actively used by the developers. These are always expected to work correctly.  Currently, only Linux (x86 and x64) and FreeBSD on x86 are in this category. 
 +  - Platforms which have been ran by developers and an attempt to maintain support is exerted These platforms are OS XNetBSDand OpenBSD on x86.  In general a [[good bug report]] will result in a quick fix to these systems. 
 +  - Next there is non-x86 hardware with one of the above OSs.  We try to ensure that Synchronet works on these platformsbut a bug report may be ignored for months before it is resolved due to lack of access to the platform.  When reporting a bugit would be good if the reporter is willing to grant remote shell access to their system and have a development toolchain installed. 
 +  - Lastly there are systems which will never be supported.  These generally include systems with 16-bit address buses, lack of an implementation of the pthread API (such as Xenix systems), or ones which are generally painful to work on (such as GNU/Hurd).
  
-??? 64-bit? +===== Linux Distros =====
-!!! 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|here]] +
-in conjunction with this document for building and be prepared to deal with +
-bugs.+
  
-??The installer (e.g. Linux-install from sbbsunix.tgz) segfaults, crashes, or fails to get the file size of sbbs_src.tgz. +**Question:**\\ 
-!!! This installer has known issues and is currently **unsupported**. Do not use+What distributions of Linux are supported? 
 + 
 +**Answer:**\\ 
 +Should work with any GNU/Linux-x86 or x64 distribution (e.g. RedHat, Debian, Slackware, Ubuntu, Gentoo, etc.). 
 + 
 +===== 64-bit ===== 
 + 
 +**Question:**\\ 
 +64-bit? 
 + 
 +**Answer:**\\ 
 +64-bit Linux (x64, x86_64, x86-64) distributions are supported. 
 + 
 +===== Installer ===== 
 +**Question:**\\ 
 +The installer (e.g. Linux-install from sbbsunix.tgz) segfaults, crashes, or fails to get the file size of sbbs_src.tgz. 
 + 
 +**Answer:**\\ 
 +This installer has known issues and is currently **unsupported**. Do not use
 it. This installer (known to us as "sbbsinst") may be revamped and re-released in the near future. it. This installer (known to us as "sbbsinst") may be revamped and re-released in the near future.
  
Line 28: Line 62:
 build, install, and run Synchronet for Unix. build, install, and run Synchronet for Unix.
  
-??? Linking error: ''undefined reference: '__ctype_b''' +===== non-x86 =====
-!!! 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  +**Question:**\\ 
-distribution (if it is). See installation steps 1.E and 1.F for more +Are non-x86/x64 (Alpha, SPARC, 68k, PowerPC, etcprocessors supported?
-details.+
  
-??? Are non-x86 (Alpha, SPARC, 68k, PowerPC, etc) processors supported? +**Answer:**\\ 
-!!! Not currently. Synchronet assumes a little-endian processor. It *may* work+Not currently. Synchronet assumes a little-endian processor. It *may* work
 on other little-endian processors (e.g. Alpha), but hasn't been tested. 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. 
  
-??? Will Synchronet ever support big-endian and/or 64-bit processors? +===== Download =====
-!!! Yes, that is the plan.+
  
-Q. Will Synchronet be ported to Mac OS X? +**Question:**\\ 
-A. Definitely. See the 2 questions above.+Where do I get Synchronet for Unix?
  
-Q. Where do I get Synchronet for Unix? +**Answer:**\\ 
-A. There are no binary distributions at this time, so you must get the source +See the step-by-step instructions [[:install:nix|here]]. 
-code from the Synchronet CVS repository (see the step-by-step instructions + 
-below for details) or by downloading the latest verified buildable source +===== Binaries ===== 
-code tarball (tgz file) from ftp://vert.synchro.net/Synchronet. + 
-    +**Question:**\\    
-Q. Will there be binary releases? +Will there be binary releases? 
-A. Maybe. Linux is a particularly difficult "platform" to deliver consistently+ 
 +**Answer:**\\    
 +Maybe. Linux is a particularly difficult "platform" to deliver consistently
 compatible binaries for and unfortunately, it is the most popular Unix-like compatible binaries for and unfortunately, it is the most popular Unix-like
 operating system we currently support. operating system we currently support.
  
-Q. Can I mix Synchronet for Unix and Synchronet for Win32 or DOS or OS/2 nodes+===== Mix with Windows ===== 
 + 
 +**Question:**\\    
 +Can I mix Synchronet for Unix and Synchronet for Win32 or DOS or OS/2 nodes
 on the same BBS? on the same BBS?
-A. Yes. As long as all the nodes can access the same live data files (via LAN)+ 
 +**Answer:**\\    
 +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 you can have as many instances of Synchronet on as many different platforms
 as you wish. as you wish.
  
-Q. Does Synchronet for Unix support external DOS programs/doors? +===== DOS ===== 
-A. Currently, only the FreeBSD build has doscmd support "built-in" (and this+ 
 +**Question:**\\    
 +Does Synchronet for Unix support external DOS programs/doors? 
 + 
 +**Answer:**\\    
 +Currently, only the FreeBSD build has doscmd support "built-in" (and this
 "support" requires emulators/doscmd to be installed): "support" requires emulators/doscmd to be installed):
  
Line 83: Line 119:
 programs. programs.
  
-There's a patch for "building-in" DOSEMU support with Synchronet for Linux: +For running external DOS programs on Linux using DOSEMU, see [[howto:dosemu]] for details
-http://www.icequake.net/bbs/syncmods/index.html and +===== Doors =====
-(mirror) http://www.synchro.net/docs/linux-dosemu.html+
  
-and a FAQ for using DOSEMU with Synchronet for Linux (without a patch)+**Question:**\\    
-http://www.exeonline.com/bbs/howto-doors.txt+What external programs/doors does Synchronet for Unix support?
  
-Q. What external programs/doors does Synchronet for Unix support? +**Answer:**\\    
-A. External programs can either use standard I/O (e.g. bash, pico, Lord/X,+External programs can either use standard I/O (e.g. bash, pico, Lord/X,
 PimpWars) or socket I/O (e.g. Synchronet XSDK doors). PimpWars) or socket I/O (e.g. Synchronet XSDK doors).
  
-Q. Does Synchronet for Unix require X-Windows? +===== X Windows ===== 
-A. No, Synchronet for Unix is currently a console-based application.+**Question:**\\    
 +Does Synchronet for Unix require X-Windows? 
 + 
 +**Answer:**\\    
 +No, Synchronet for Unix is currently a console-based application.
 However, it does have an X-based character mode console now.  The X11 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 headers (Part of the X11-devel package or something similar) are required
 for this to work. for this to work.
  
-Q. Are there any plans to make an X-Windows front-end for Synchronet? +===== GUI ===== 
-A. Possibly, but it would be optional.+**Question:**\\    
 +Are there any plans to make an X-Windows front-end for Synchronet?
  
-Q. What are the recent developments in Synchronet? +**Answer:**\\    
-A. There are changes (fixes, improvements, etc.) being made all the time. +See [[monitor:gtkmonitor]].
-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), +===== Compiler ===== 
-as well as announced in the Synchronet discussion groups +**Question:**\\    
-(http://www.synchro.net/docs/support.htmland the Synchronet Announcements +Can I use a different compiler (than GCCto build Synchronet for *nix?
-mailing list (subscribe at listserver@synchro.net).+
  
-Q. Can I use a different compiler to build Synchronet for *nix? +**Answer:**\\    
-A. Yes, currently Synchronet has successfully been built with both GCC and ICC +Yes, currently Synchronet has successfully been built with GCCICC 
-(The Intel C Compiler).  To specify an alternate compiler, add +(The Intel C Compiler), and Clang/LLVM.  To specify an alternate compiler, add 
-``DONT_CLOBBER_CC=1 CC=icc CXX=icpc'' to the gmake command lines where +''CC=icc CXX=icpc'' to the gmake command lines where icc is the C compiler name 
-icc is the C compiler name and icpc is the C++ compiler name.  If you get +and icpc is the C++ compiler name.  If you get errors during the build (not 
-errors during the build (not warnings) please submit a bug report.  If you +warnings) please submit a bug report.  If you are using a commercial compiler 
-are using a commercial compiler other than ICC, we will probobly be unable +other than ICC, we will probably be unable to help you without a copy of the 
-to help you without a copy of the compiler.+compiler.
  
-Q. I'm using SELinux and nothing works+===== SELinux ===== 
-A. Yes, you'll need to use chcon on each of the shared objects (.so files) +**Question:**\\    
-chcon -t texrel_shlib_t /path/to/libwhatever.so +I'm using SELinux and nothing works.
-Do this for each .so file that Synchronet creates.+
  
-Q. How much disk space do I need+**Answer:**\\    
-A. A fresh install (as of Feb-2009) requires about 70MBytes. +Yes, you'll need to use chcon on each of the Synchronet shared objects (''.so'' files): 
-Much of the space consumed is in the form of intermediate build files which +  chcon -t texrel_shlib_t /sbbs/exec/*.so
-may be removed after the build is complete if space is a concern.+
  
 +===== Disk Space =====
 +**Question:**\\   
 +How much disk space do I need?
 +
 +**Answer:**\\   
 +A fresh install (as of Mar-2020) from source code, requires about 500MBytes of space.
 +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.
 +
 +
 +===== Terminal Type =====
 +**Question:**\\
 +What does the error ''Unknown terminal: pc3'' displayed by some native external programs (e.g. ''pico'') indicate?
 +
 +**Answer:**\\
 +The error indicates that the value of your ''TERM'' environment variable (in the example case, ''pc3'') is not a valid terminal type/capabilities name for your system.
 +
 +The default value of the ''ExternalTermANSI'' key in your ''[[:config:sbbs.ini]]'' file is ''pc3'', and Synchronet uses the value of this key to set the ''TERM'' environment variable for child processes (external programs). If your *nix installation has a terminal type/capability with this name, then this terminal type might work for you (and your users) but there is a better option: to use the Synchronet ''ansi-bbs'' terminal capabilities set (created by [[:person:Deuce]]). The configuration/installation instructions for the Synchronet ''ansi-bbs'' terminal capabilities set are covered in [[:config:nix#termcap]].
 +
 +===== tempnam warning =====
 +**Question:**\\
 +Why do I get the GCC compilation warning: <code>the use of `tempnam' is dangerous, better use `mkstemp'</code> ?
 +
 +**Answer:**\\
 +This is not an error but a harmless warning. You can safely ignore it.
 +
 +To elaborate, [[util:SBBSecho]] uses ''tempnam'' for a specific purpose, which ''mkstemp'' does not do. Additionally ''mkstemp'' is not available in all the C libraries for all the platforms for which Synchronet is built. The //dangers// of ''tempnam'' do not apply to SBBSecho's use of the function.
 +
 +===== SDL errors =====
 +**Question:**\\
 +How do I work around SDL_main errors (e.g. ''No protocol specified'' followed by a ''segmentation fault'') that prevent Synchronet applications (e.g. [[util:SCFG]], [[util:EchoCFG]], [[monitor:umonitor]], etc.) built with SDL 1.2 from running?
 +<code>
 +$ /sbbs/exec/scfg
 +No protocol specified
 +No protocol specified
 +No protocol specified
 +Segmentation fault (core dumped)
 +</code>
 +
 +**Answer:**\\
 +Double check that you can run X applications (e.g. ''xterm'', ''xeyes'') and if you cannot, you may need to grant X access to other user accounts with a command like:
 +  xhost +SI:localuser:<username>
 +executed before switching to another user account (e.g. with ''su'' or ''sudo'').
 +
 +Work-arounds:
 +  - Clean re-build all of Synchronet without SDL support (include ''WITHOUT_SDL=1'' on the ''make'' command-lines or in your ''localdefs.mk'' file)
 +  - Set the ''SDL_VIDEODRIVER'' environment variable to the value of ''dummy'' (e.g. ''EXPORT SDL_VIDEODRIVER=dummy'') before executing the program
 +
 +===== Recycle =====
 +**Question:**\\
 +Why do my servers/services fail to recycle when I set the node-recycle flag (e.g. saving changes in [[util:SCFG]]) or when touching recycle [[config:semfiles]]?
 +
 +**Answer:**\\
 +Servers will not recycle while they are in-use.
 +
 +<file>
 +$ node rerun
 +
 +Synchronet Node Display/Control Utility v1.34
 +
 +Node  1: User #1 reading messages via telnet (M) [R]
 +Node  2: Waiting for connection [R]
 +Node  3: Waiting for connection [R]
 +Node  4: Waiting for connection [R]
 +Node  5: Waiting for connection [R]
 +Node  6: Waiting for connection [R]
 +Node  7: Waiting for connection [R]
 +Node  8: Waiting for connection [R]
 +</file>
 +
 +**Question:**\\
 +What do the following warning-level log messages indicate?
 +  Disabling Terminal Server recycle support
 +  Disabling FTP Server recycle support
 +  Disabling Web Server recycle support
 +  Disabling Mail Server recycle support
 +  Disabling Services recycle support
 +  
 +**Answer:**\\
 +Recycle support can be disabled manually be setting the ''NO_RECYCLE'' ''Options'' flag in one or more server sections of your ''[[config:sbbs.ini]]'' file.\\
 +The log warning messages above ("Disabling ... recycle support") indicate that the BBS automatically set the ''NO_RECYCLE'' option flag because it was:
 +  - Configured to bind-to/listen-on TCP ports < 1024 (the so-called "reserved" ports)
 +  - **and** the BBS was configured to change the current user-id in the ''[[config:sbbs.ini#UNIX]]'' section of ''[[config:sbbs.ini]]''
 +  - **and** the BBS could not dynamically set the bind capabilities using the Linux "Capabilities" syscall interface.
 +
 +The solution is to remove the ''User'' and ''Group'' settings from the ''[[config:sbbs.ini#UNIX]]'' section of ''[[config:sbbs.ini]]'' and then follow the instructions [[howto:Linux_non-root|here]] for running the BBS on Linux as a non-root user (if you haven't already).
  
 ===== See Also ===== ===== See Also =====
-  * [[:faq:|faq index]]+  * [[:faq:|Frequently Asked Questions]] 
 + 
 +{{tag>unix linux}} 
 +