CVS Repository

NOTE: The Synchronet project has switched from the use of CVS to Git as of August 2020. The old CVS repository will remain available for a while in read-only form.

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:


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
  • sbbs317b

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


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

cvs -d co src-sbbs3 lib

CVS command-line example (for Windows):

cvs -d co src-sbbs3 lib-win32


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 login


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.


To update your Synchronet source code and 3rd party library files from CVS, execute from the parent of your Synchronet src directory (e.g. /sbbs) on *nix:

cvs checkout -A src-sbbs3 lib

on Windows:

cvs checkout -A src-sbbs3 lib-win32

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

cvs update -d -A exec

For full instructions on updating Synchronet run-time files from CVS, see run-time_files.

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


$ 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) will 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.

An alternative method to get a list of locally-modified files (in the current working directory) is to perform a comparison (diff):

cvs diff --brief

See Also

dev/cvs.txt · Last modified: 2020/08/24 11:11 by digital man
Back to top
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0