4 Anonymous CVS access is now available to SILC CVS repository. The
5 repository includes everything related to SILC project; source codes,
6 documentation and web pages.
8 Also note that this is the closest to real time development you can get
9 thus you cannot expect that the source tree would work or even compile.
10 While it is our intention that the trunk would always at least compile
11 there might be situations when it will not.
14 Howto Checkout The Source Tree
15 ==============================
17 The repository can be checked out by using anonymous pserver with CVS.
18 There are no password restrictions in the SILC anonymous CVS repository.
20 For those who are using sh/ksh/bash the check out is done as follows:
22 export CVSROOT=:pserver:cvs@cvs.silcnet.org:/cvs/silc
26 For those who are using csh/tcsh the check out is done as follows:
28 setenv CVSROOT :pserver:cvs@cvs.silcnet.org:/cvs/silc
32 If you don't want to set $CVSROOT environment variable you can set the
33 path to the cvs as command line options:
35 cvs -d:pserver:cvs@cvs.silcnet.org:/cvs/silc login
36 cvs -d:pserver:cvs@cvs.silcnet.org:/cvs/silc co silc
38 What ever method you decide to use, after you have done cvs login you will
39 be prompted for password:
43 Type the password "silc" and press Enter.
45 The actual SILC source tree is checked out using the cvs co silc command,
46 described above. This command will fetch the source tree and save it into
47 directory named silc. SILC CVS repository currently does not have any
48 branches thus this will check out the trunk. The size of the trunk is
49 currently about 8 Mb but will grow in the future.
52 What SILC Source Tree Includes
53 ==============================
55 SILC Source tree includes a lot more stuff that appears in public
56 distribution. The source tree includes, for example, internal scripts,
57 configuration files, SILC webpages etc. These never appear on a public
60 Following directories currently exist in SILC source tree.
64 Includes all the SILC documentation. Some of the documentation
65 are generated when distribution is generated. The automatically
66 generated files must never be commited to CVS.
70 Includes SILC include files.
74 Includes the Irssi SILC Client.
78 Includes SILC libraries. There maybe libraries on the CVS that
79 does not appear on public distribution.
83 Contrib directory for routines that some of the platforms might
84 not have. In that case these routines are provided by the SILC.
88 The SILC Client library. Implementation of the SILC Client without
89 the user interface. The library provides an interface for user
94 The SILC Protocol Core library. Implementation of all the core
95 components of the SILC Protocol. This is used by all the SILC
100 The SILC Crypto library. Provides all cryptographic algorithms
101 used in the SILC. Provides also the Cryptographically strong
102 random number generator.
106 The SILC Math library. Provides the Math and MP routines for
107 SILC applications. The MP library is actually the GMP.
111 The SILC Modules library. Provides the dynamically loadable
116 The SILC Key Exchange (SKE) library. Implementation of the
117 SKE protocol. This is used by all SILC applications.
121 The SILC Utility library. Provides various utility functions
122 for the applications.
126 The SILC Utility library. Provides various Unix specific utility
127 functions for the applications.
131 The SILC Utility library. Provides various WIN32 specific utility
132 functions for the applications.
136 Includes the official SILC web pages and everything that relates
137 to them. This directory never appears on public distribution.
141 Includes an example implementation of ncurses based SILC client.
142 It won't compile with current Toolkit since it is not being
143 updated. It is still good example for Toolkit programmer to
144 figure out how to use SILC Toolkit.
148 Includes an example implementation of GUI (Gnome) base SILC
149 client. Please read silcer/README for more information.
153 Includes SILC server. There can be some extra files that will
154 never appear in public distribution, such as, configuration files.
157 Howto Compile SILC Source Tree
158 ==============================
160 After checkout from CVS the SILC source tree must be prepared for
161 configuration and compilation. To compile the source tree, give,
164 ./configure --enable-debug
167 The ./prepare script is included in to the source tree and it never
168 appears in public distribution. The script prepares the source tree
169 by creating configuration scripts and Makefiles. The prepare must be
170 run every time you make some changes to configuration scripts (however,
171 making changes to Makefile.am's does not require running ./prepare).
173 As a developer you should read the ./configure script's help by
174 giving ./configure --help and study all of its different options. Also,
175 you should configure the script with --enable-debug option as it
176 compiles SILC with -g (debugging) option and it enables the
177 SILC_LOG_DEBUG* scripts. Warning is due here: The debugging produced
178 by both cilent and server is very heavy, thus it is common to test
179 the programs as follows:
181 ./silc -d "*" -f configfile 2>log
182 ./silcd -d "*" -f configfile 2>log
184 The -d option enables the debug printing. The argument for the -d option
185 is a string that is used to match the output debug. The example "*" will
186 match for everything, and all debugs will be printed. If you want to
187 limit the debugs you want to printout you can give for example a string
188 like "*server*,*rng*" to match all functions, and filenames that has
189 "server" or "rng" string in them. Others will not be printed out. You
190 can freely define regural expressions as debug string.
193 Howto Clean SILC Source Tree
194 ============================
196 To entirely clear the source tree to the state after it was checked out
201 This calls `make distclean' plus removes automatically generated files
202 by hand. It also removes *.log files. However, it will not remove
203 any other files you might have created.
206 Makefiles and configuration files
207 =================================
209 Developers should never directly write a Makefile. All Makefiles are
210 always automatically generated by ./prepare and later by ./configure
211 scripts. Instead, developers must write Makefile.am files. There
212 are plenty of examples what they should look like. If you change
213 Makefile.am during development you don't have to run ./prepare, just
216 Configuration files are the files that ./prepare automatically generates
217 and what will be included into public distribution. ./prepare creates
218 for example the ./configure script that is not commited to the CVS.
219 `configure.in' is the file that developers must edit to change ./configure
220 script. After changing one must run ./prepare.