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.