Mark client entry invalid when killed and when notified non-existing
[silc.git] / README.CVS
index 4d534eb2e13f0f9f4090edea3c2cfd678b53159d..c50be0b5183baab236405b690e521f029fa841a8 100644 (file)
@@ -3,25 +3,12 @@ Anonymous CVS Access
 
 Anonymous CVS access is now available to SILC CVS repository. The
 repository includes everything related to SILC project; source codes,
-documentation and even these web pages. The CVS access and hosting for the
-public SILC CVS mirror is kindly provided by SourceForge.  The actual CVS
-repository that is used in the development resides in silc.pspt.fi and is
-mirrored by SourceForge.
+documentation and web pages.
 
 Also note that this is the closest to real time development you can get
 thus you cannot expect that the source tree would work or even compile.
 While it is our intention that the trunk would always at least compile
-there might be situations when it will not. The CVS repository is mirrored
-hourly by the SourceForge.
-
-
-Browsing the Source Tree
-========================
-
-If you want to browse the source tree using web browser before checking
-out the tree with CVS use following link:
-
-http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/?cvsroot=silc
+there might be situations when it will not.
 
 
 Howto Checkout The Source Tree
@@ -32,34 +19,34 @@ There are no password restrictions in the SILC anonymous CVS repository.
 
 For those who are using sh/ksh/bash the check out is done as follows:
 
-export CVSROOT=:pserver:anonymous@cvs.silc.sourceforge.net:/cvsroot/silc
+export CVSROOT=:pserver:cvs@cvs.silcnet.org:/cvs/silc
 cvs login
 cvs co silc
 
 For those who are using csh/tcsh the check out is done as follows:
 
-setenv CVSROOT :pserver:anonymous@cvs.silc.sourceforge.net:/cvsroot/silc
+setenv CVSROOT :pserver:cvs@cvs.silcnet.org:/cvs/silc
 cvs login
 cvs co silc
 
 If you don't want to set $CVSROOT environment variable you can set the
 path to the cvs as command line options:
 
-cvs -d:pserver:anonymous@cvs.silc.sourceforge.net:/cvsroot/silc login
-cvs -d:pserver:anonymous@cvs.silc.sourceforge.net:/cvsroot/silc co silc
+cvs -d:pserver:cvs@cvs.silcnet.org:/cvs/silc login
+cvs -d:pserver:cvs@cvs.silcnet.org:/cvs/silc co silc
 
 What ever method you decide to use, after you have done cvs login you will
 be prompted for password:
 
-       CVS password:
+       CVS password: silc
 
-There is no password so you can press enter when prompted.
+Type the password "silc" and press Enter.
 
 The actual SILC source tree is checked out using the cvs co silc command,
 described above. This command will fetch the source tree and save it into
 directory named silc. SILC CVS repository currently does not have any
 branches thus this will check out the trunk. The size of the trunk is
-currently about 1.5 Mb but will grow in the future.
+currently about 8 Mb but will grow in the future.
 
 
 What SILC Source Tree Includes
@@ -72,6 +59,10 @@ distribution.
 
 Following directories currently exist in SILC source tree.
 
+  apps/
+
+       All applications.
+
   doc/
 
         Includes all the SILC documentation.  Some of the documentation
@@ -82,42 +73,115 @@ Following directories currently exist in SILC source tree.
 
         Includes SILC include files.
 
+  apps/irssi/
+
+       Includes the Irssi SILC Client.
+
   lib/
 
         Includes SILC libraries.  There maybe libraries on the CVS that
         does not appear on public distribution.
 
+  lib/contrib/
+
+        Contrib directory for routines that some of the platforms might
+        not have.  In that case these routines are provided by the SILC.
+
+  lib/silcclient/
+
+        The SILC Client library. Implementation of the SILC Client without
+        the user interface.  The library provides an interface for user
+        interface designers.
+
+  lib/silccore/
+
+        The SILC Protocol Core library.  Implementation of all the core
+        components of the SILC Protocol.  This is used by all the SILC
+        applications.
+
+  lib/silccrypt/
+
+        The SILC Crypto library. Provides all cryptographic algorithms
+        used in the SILC.  Provides also the Cryptographically strong
+        random number generator.
+
+  lib/silcmath/
+
+        The SILC Math library. Provides the Math and MP routines for
+        SILC applications.  The MP library is actually the GMP.
+
+  lib/silsim/
+
+        The SILC Modules library.  Provides the dynamically loadable
+        modules.
+
+  lib/silcske/
+
+        The SILC Key Exchange (SKE) library.  Implementation of the
+        SKE protocol.  This is used by all SILC applications.
+
+  lib/silcutil/
+
+        The SILC Utility library.  Provides various utility functions
+        for the applications.
+
+  lib/silcutil/unix/
+
+        The SILC Utility library.  Provides various Unix specific utility
+        functions for the applications.
+
+  lib/silcutil/win32/
+
+        The SILC Utility library.  Provides various WIN32 specific utility
+        functions for the applications.
+
   public_html/
 
         Includes the official SILC web pages and everything that relates
         to them.  This directory never appears on public distribution.
 
-  silc/
+  apps/silc/
 
-        Includes SILC client.  There can be some extra files that will
-        never appear in public distribution, such as, configuration files.
+       Includes an example implementation of ncurses based SILC client.
+       It won't compile with current Toolkit since it is not being 
+       updated.  It is still good example for Toolkit programmer to 
+       figure out how to use SILC Toolkit.
+
+  apps/silcer/
 
-  silcd/
+       Includes an example implementation of GUI (Gnome) base SILC
+       client.  Please read silcer/README for more information.
+
+  apps/silcd/
 
         Includes SILC server.  There can be some extra files that will
         never appear in public distribution, such as, configuration files.
 
+  win32/
+
+       Includes win32 Toolkit specific files.  It includes MSVC++
+       Workspace files.  The win32/tests includes example code for
+       use of SILC Toolkit and SILC Client Library on Win32 GUI 
+       application.
+
 
 Howto Compile SILC Source Tree
 ==============================
 
-After checkout from CVS the SILC source tree must be prepared for 
-configuration and compilation.  To compile the source three, give,
+To be able to prepare the CVS tree for configuration and compilation
+Autodist must be installed into the system.  You can download the latest
+version of Autodist from: 
+
+       http://silcnet.org/software/download/autodist/
+
+To prepare the CVS source tree for configuration and compilation, give:
 
-       ./prepare
+       autodist
        ./configure --enable-debug
        make
 
-The ./prepare script is included in to the source tree and it never
-appears in public distribution.  The script prepares the source tree
-by creating configuration scripts and Makefiles.  The prepare must be
-run every time you make some changes to configuration scripts (however,
-making changes to Makefile.am's does not require running ./prepare).
+The autodist must be run every time you make some changes to configuration 
+scripts.
 
 As a developer you should read the ./configure script's help by
 giving ./configure --help and study all of its different options.  Also,
@@ -127,35 +191,43 @@ SILC_LOG_DEBUG* scripts.  Warning is due here:  The debugging produced
 by both cilent and server is very heavy, thus it is common to test
 the programs as follows:
 
-       ./silc -f configfile 2>log
-       ./silcd -f configfile 2>log
-
-
-Howto Clean SILC Source Tree
-============================
-
-To entirely clear the source tree to the state after it was checked out
-from CVS, give,
-
-       ./prepare-clean
+       ./silc -d "*" -f configfile 2>log
+       ./silcd -d "*" -f configfile 2>log
 
-This calls `make distclean' plus removes automatically generated files
-by hand.  It also removes *.log files. However, it will not remove
-any other files you might have created.
+The -d option enables the debug printing.  The argument for the -d option
+is a string that is used to match the output debug.  The example "*" will
+match for everything, and all debugs will be printed.  If you want to
+limit the debugs you want to printout you can give for example a string
+like "*server*,*rng*" to match all functions, and filenames that has
+"server" or "rng" string in them.  Others will not be printed out.  You   
+can freely define regural expressions as debug string.
 
 
 Makefiles and configuration files
 =================================
 
-Developers should never directly write a Makefile.  All Makefiles are
-always automatically generated by ./prepare and later by ./configure
-scripts.  Instead, developers must write Makefile.am files.  There
-are plenty of examples what they should look like.  If you change
-Makefile.am during development you don't have to run ./prepare, just
-run normal make.
-
-Configuration files are the files that ./prepare automatically generates
-and what will be included into public distribution.  ./prepare creates
-for example the ./configure script that is not commited to the CVS.
-`configure.in' is the file that developers must edit to change ./configure
-script.  After changing one must run  ./prepare.
+Developers should never directly write a Makefile.  All Makefiles are 
+always automatically generated by autodist and later by ./configure 
+scripts.  Instead, developers must write Makefile.ad files or Makefile.am 
+files.  If the Makefile needs to include any distdefs (SILC_DIST_XXX), 
+then Makefile.ad (.ad stands for autodist) must be written.  If the 
+Makefile is generic (common to all distributions) then Makefile.am may be 
+written.  Note that distdefs MUST NOT be used in Makefile.am files, as the 
+autodist will modify them.  See the source tree for examples.  If you 
+change Makefile.ad files, the autodist must be rerun.
+
+The autodist also creates the configure.ac script from which the autoconf 
+then creates the ./configure script.  All changes to configure must 
+always be done into the configure.ad scripts.  All changes made to 
+configure.ac will be lost.  The autodist distdefs may also be used in 
+configure.ad files.  It is also possible to write more than one 
+configure.ad in the source tree.  All configure.ad fragments will be 
+collected from the source tree by autodist and combined into one 
+configure.ac scripts.  After making changes to configure.ad files the 
+autodist must be rerun.
+
+The distdefs are defined in the corresponding distributions.  All 
+distributions live in distdir/ directory.  The distdefs can be used in any 
+file in the source tree, but mainly they are used in Makefile.ad, 
+configure.ad and source and headers files.  See autodist documentation for 
+more information how to use distdefs.