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

You can donate to the Synchronet project using PayPal.

This is an old revision of the document!


CVS Repository

Synchronet source code and some third-party dependencies are stored in a version control database (repository) using a ubiquitous software system called CVS.

Anonymous access, for current source code or previous releases by label, is available to the following repositories:

  • cvs.synchro.net:/cvsroot/sbbs
  • cvs-mirror.synchro.net:/cvsroot/sbbs

Required modules for building Synchronet:

  • src-sbbs3 (alias for several modules)
  • One of the following module aliases (for required third-party libraries):
    • lib-win32 (for Windows)
    • lib (for all other supported platforms)

Required modules for running Synchronet (if you don't already have Synchronet installed):

  • run-sbbs3 (alias for several modules)

Example labels (for checking-out a specific release):

  • sbbs300c
  • sbbs310k
  • sbbs314a
  • sbbs315a
  • sbbs316c

NOTE: If you really want to build an old release, you'll probably have better luck downloading a source archive (e.g. ssrc314a.zip or ssrc314a.tgz) from ftp://vert.synchro.net/ and building that instead as some deprecated files may have been removed from the CVS repository since.

Examples

CVS command-line example (for non-Windows OSes):

cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs co src-sbbs3 lib

CVS command-line example (for Windows):

cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs co src-sbbs3 lib-win32

Login

If you have not already done so, you will need to login to the CVS repository at least once (the install/GNUmakefile for logs-in for you when installing on *nix using CVS):

cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login

Changes

In October of 2011, the /lib and /include modules in the Synchronet CVS repository were deprecated (and removed on October 26th) and a new top level module (/3rdp) was introduced which includes pre-built third-party libraries and header files for Win32 builds and source archives (e.g. tarballs) and build files for *nix builds.

The lib and lib-win32 module aliases actually refer to sub-directories of the /3rdp module.

Updating

To update your Synchronet source files from CVS, execute from the parent of your Synchronet src directory (e.g. /sbbs):

cvs update -d src 3rdp

To update your Synchronet executable script and module files from CVS, after backing-up your exec directory, execute from your Synchronet exec directory (e.g. /sbbs/exec):

cvs update -d

Checking Status

To get a list of locally-modified files (in the current working directory), run a dummy checkout with the command:

cvs -qn update

Example:

$ cvs -qn update
U ftpsrvr.c
M jsexec.c
cvs update: warning: `smbutil.c' was lost
U smbutil.c
M xtrn.cpp

In this example, the file ftpsrvr.c was modified, but contains no changes, the file smbutil.c was removed, and the files jsexec.c, smbutil.c, and xtrn.cpp have local changes that will be merged (the M status) with a normal cvs update.

A normal cvs update (without the -qn option) while merge up-stream changes (changes made by others in the repository) into your local files, but its possible those changes may conflict with your local changes (if there are any) in which case the file status will be displayed as C and those merge-conflicts must be resolved using an editor (or the local file deleted and checked-out again from the repository).

For a detailed status of all the CVS-tracked files in the current working directory, use the cvs status command.

See Also